diff options
author | Francisco Jerez <[email protected]> | 2017-12-12 12:05:03 -0800 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2018-03-02 11:28:56 -0800 |
commit | e7c9adca5726a8c96de20ae7c5f21a30061db392 (patch) | |
tree | 0fc5f36bfcafaf9db3c6e076ee85b0d5038461a2 /src/intel/compiler/brw_vec4_generator.cpp | |
parent | 6edb332b44b2570abac8fea2123050ea0f84e1e6 (diff) |
intel/eu: Plumb header present bit to codegen helpers for HDC messages.
This makes sure that the header-present bit of the message descriptor
is in sync with the IR instruction fields, which gives the optimizer
more control to avoid the overhead of setting up a message header when
it's possible to do so.
Reviewed-by: Jordan Justen <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_vec4_generator.cpp')
-rw-r--r-- | src/intel/compiler/brw_vec4_generator.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/intel/compiler/brw_vec4_generator.cpp b/src/intel/compiler/brw_vec4_generator.cpp index 6fa6e35b24a..ecf9ed0ba3a 100644 --- a/src/intel/compiler/brw_vec4_generator.cpp +++ b/src/intel/compiler/brw_vec4_generator.cpp @@ -1869,10 +1869,11 @@ generate_code(struct brw_codegen *p, case SHADER_OPCODE_UNTYPED_ATOMIC: assert(src[2].file == BRW_IMMEDIATE_VALUE); brw_untyped_atomic(p, dst, src[0], src[1], src[2].ud, inst->mlen, - !inst->dst.is_null()); + !inst->dst.is_null(), inst->header_size); break; case SHADER_OPCODE_UNTYPED_SURFACE_READ: + assert(!inst->header_size); assert(src[2].file == BRW_IMMEDIATE_VALUE); brw_untyped_surface_read(p, dst, src[0], src[1], inst->mlen, src[2].ud); @@ -1881,25 +1882,25 @@ generate_code(struct brw_codegen *p, case SHADER_OPCODE_UNTYPED_SURFACE_WRITE: assert(src[2].file == BRW_IMMEDIATE_VALUE); brw_untyped_surface_write(p, src[0], src[1], inst->mlen, - src[2].ud); + src[2].ud, inst->header_size); break; case SHADER_OPCODE_TYPED_ATOMIC: assert(src[2].file == BRW_IMMEDIATE_VALUE); brw_typed_atomic(p, dst, src[0], src[1], src[2].ud, inst->mlen, - !inst->dst.is_null()); + !inst->dst.is_null(), inst->header_size); break; case SHADER_OPCODE_TYPED_SURFACE_READ: assert(src[2].file == BRW_IMMEDIATE_VALUE); brw_typed_surface_read(p, dst, src[0], src[1], inst->mlen, - src[2].ud); + src[2].ud, inst->header_size); break; case SHADER_OPCODE_TYPED_SURFACE_WRITE: assert(src[2].file == BRW_IMMEDIATE_VALUE); brw_typed_surface_write(p, src[0], src[1], inst->mlen, - src[2].ud); + src[2].ud, inst->header_size); break; case SHADER_OPCODE_MEMORY_FENCE: |