summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2016-05-16 15:47:39 -0700
committerFrancisco Jerez <currojerez@riseup.net>2016-05-27 23:28:59 -0700
commita7d319c00be425be219a101b5b4d48f1cbe4ec01 (patch)
tree7f311382073f9e9ef9f3ef8d51d05130d312e5d6 /src/mesa/drivers/dri/i965/brw_fs_generator.cpp
parentfe5cdde2f9f84022b512de1fa42a036a371d31ba (diff)
downloadexternal_mesa3d-a7d319c00be425be219a101b5b4d48f1cbe4ec01.zip
external_mesa3d-a7d319c00be425be219a101b5b4d48f1cbe4ec01.tar.gz
external_mesa3d-a7d319c00be425be219a101b5b4d48f1cbe4ec01.tar.bz2
i965/fs: Implement scratch reads and writes of 4 GRFs at a time.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_fs_generator.cpp')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_generator.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
index 4b4792f..7308fdd 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
@@ -1061,6 +1061,7 @@ fs_generator::generate_discard_jump(fs_inst *inst)
void
fs_generator::generate_scratch_write(fs_inst *inst, struct brw_reg src)
{
+ assert(inst->exec_size <= 16 || inst->force_writemask_all);
assert(inst->mlen != 0);
brw_MOV(p,
@@ -1073,6 +1074,7 @@ fs_generator::generate_scratch_write(fs_inst *inst, struct brw_reg src)
void
fs_generator::generate_scratch_read(fs_inst *inst, struct brw_reg dst)
{
+ assert(inst->exec_size <= 16 || inst->force_writemask_all);
assert(inst->mlen != 0);
brw_oword_block_read_scratch(p, dst, brw_message_reg(inst->base_mrf),
@@ -1082,6 +1084,8 @@ fs_generator::generate_scratch_read(fs_inst *inst, struct brw_reg dst)
void
fs_generator::generate_scratch_read_gen7(fs_inst *inst, struct brw_reg dst)
{
+ assert(inst->exec_size <= 16 || inst->force_writemask_all);
+
gen7_block_read_scratch(p, dst, inst->exec_size / 8, inst->offset);
}