intel/vec4: Add support for masking pushed data
This is the vec4 equivalent of d0d039a4d3, required for proper UBO
pushing in vertex stages for Vulkan on HSW. Sadly, the implementation
requires us to do everything in ALIGN1 mode and the vec4 instruction
scheduler doesn't understand HW_GRF <-> UNIFORM interference so it's
easier to do the whole thing in the generator. We add an instruction
to the top of the program which just means "emit the blob" and all the
magic happens in codegen.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10571>
This commit is contained in:
committed by
Marge Bot
parent
a881f2295f
commit
89fd196f6b
@@ -423,6 +423,8 @@ brw_instruction_name(const struct intel_device_info *devinfo, enum opcode op)
|
||||
return "set_high_32bit";
|
||||
case VEC4_OPCODE_MOV_FOR_SCRATCH:
|
||||
return "mov_for_scratch";
|
||||
case VEC4_OPCODE_ZERO_OOB_PUSH_REGS:
|
||||
return "zero_oob_push_regs";
|
||||
|
||||
case FS_OPCODE_DDX_COARSE:
|
||||
return "ddx_coarse";
|
||||
@@ -1136,6 +1138,7 @@ backend_instruction::has_side_effects() const
|
||||
case SHADER_OPCODE_BTD_SPAWN_LOGICAL:
|
||||
case SHADER_OPCODE_BTD_RETIRE_LOGICAL:
|
||||
case RT_OPCODE_TRACE_RAY_LOGICAL:
|
||||
case VEC4_OPCODE_ZERO_OOB_PUSH_REGS:
|
||||
return true;
|
||||
default:
|
||||
return eot;
|
||||
|
||||
Reference in New Issue
Block a user