summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2015-02-26 17:41:46 +0200
committerFrancisco Jerez <currojerez@riseup.net>2015-05-04 15:05:20 +0300
commit8865fe309da2597398071f5171808c27aac787b4 (patch)
tree658447c3e7f64d7705d8c3d423147bda3b644f16 /src/mesa
parent0519a6259b0e6b83eaeafdf0ed30a67713c4b6ed (diff)
downloadexternal_mesa3d-8865fe309da2597398071f5171808c27aac787b4.zip
external_mesa3d-8865fe309da2597398071f5171808c27aac787b4.tar.gz
external_mesa3d-8865fe309da2597398071f5171808c27aac787b4.tar.bz2
i965: Don't request untyped atomic writeback message if the destination is null.
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_generator.cpp2
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4_generator.cpp3
2 files changed, 3 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
index ff7e85f..5b6633a 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
@@ -2018,7 +2018,7 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width)
assert(src[1].file == BRW_IMMEDIATE_VALUE &&
src[2].file == BRW_IMMEDIATE_VALUE);
brw_untyped_atomic(p, dst, src[0], src[2], src[1].dw1.ud,
- inst->mlen, true);
+ inst->mlen, !inst->dst.is_null());
brw_mark_surface_used(prog_data, src[2].dw1.ud);
break;
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp
index de7e06c..b847254 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp
@@ -1472,7 +1472,8 @@ vec4_generator::generate_code(const cfg_t *cfg)
assert(src[0].file == BRW_IMMEDIATE_VALUE &&
src[1].file == BRW_IMMEDIATE_VALUE);
brw_untyped_atomic(p, dst, brw_message_reg(inst->base_mrf),
- src[1], src[0].dw1.ud, inst->mlen, true);
+ src[1], src[0].dw1.ud, inst->mlen,
+ !inst->dst.is_null());
brw_mark_surface_used(&prog_data->base, src[1].dw1.ud);
break;