mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
i965/fs: Use exec_size instead of dispatch_width to determine the message variant.
dispatch_width is global for a single compilation and doesn't necessarily match the desired execution width if we had to lower the original full-width instruction due to hardware limitations. These were all inside a Gen4-specific branch so this patch shouldn't have any effect on more recent hardware. Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
33deff4f05
commit
8fbb3d3569
1 changed files with 4 additions and 4 deletions
|
|
@ -655,7 +655,7 @@ fs_generator::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src
|
|||
/* Note that G45 and older determines shadow compare and dispatch width
|
||||
* from message length for most messages.
|
||||
*/
|
||||
if (dispatch_width == 8) {
|
||||
if (inst->exec_size == 8) {
|
||||
msg_type = BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE;
|
||||
if (inst->shadow_compare) {
|
||||
assert(inst->mlen == 6);
|
||||
|
|
@ -674,7 +674,7 @@ fs_generator::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src
|
|||
break;
|
||||
case FS_OPCODE_TXB:
|
||||
if (inst->shadow_compare) {
|
||||
assert(dispatch_width == 8);
|
||||
assert(inst->exec_size == 8);
|
||||
assert(inst->mlen == 6);
|
||||
msg_type = BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_BIAS_COMPARE;
|
||||
} else {
|
||||
|
|
@ -685,7 +685,7 @@ fs_generator::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src
|
|||
break;
|
||||
case SHADER_OPCODE_TXL:
|
||||
if (inst->shadow_compare) {
|
||||
assert(dispatch_width == 8);
|
||||
assert(inst->exec_size == 8);
|
||||
assert(inst->mlen == 6);
|
||||
msg_type = BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_LOD_COMPARE;
|
||||
} else {
|
||||
|
|
@ -696,7 +696,7 @@ fs_generator::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src
|
|||
break;
|
||||
case SHADER_OPCODE_TXD:
|
||||
/* There is no sample_d_c message; comparisons are done manually */
|
||||
assert(dispatch_width == 8);
|
||||
assert(inst->exec_size == 8);
|
||||
assert(inst->mlen == 7 || inst->mlen == 10);
|
||||
msg_type = BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_GRADIENTS;
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue