mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-31 05:30:11 +01:00
intel/fs: Add fields to wm_prog_data for SIMD32 dispatch
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
bcbc7d3a17
commit
d5e028a57b
6 changed files with 15 additions and 1 deletions
|
|
@ -765,6 +765,7 @@ blorp_emit_ps_config(struct blorp_batch *batch,
|
|||
if (prog_data) {
|
||||
ps._8PixelDispatchEnable = prog_data->dispatch_8;
|
||||
ps._16PixelDispatchEnable = prog_data->dispatch_16;
|
||||
ps._32PixelDispatchEnable = prog_data->dispatch_32;
|
||||
|
||||
ps.DispatchGRFStartRegisterForConstantSetupData0 =
|
||||
brw_wm_prog_data_dispatch_grf_start_reg(prog_data, ps, 0);
|
||||
|
|
@ -874,6 +875,7 @@ blorp_emit_ps_config(struct blorp_batch *batch,
|
|||
if (prog_data) {
|
||||
ps._8PixelDispatchEnable = prog_data->dispatch_8;
|
||||
ps._16PixelDispatchEnable = prog_data->dispatch_16;
|
||||
ps._32PixelDispatchEnable = prog_data->dispatch_32;
|
||||
|
||||
ps.DispatchGRFStartRegisterForConstantSetupData0 =
|
||||
brw_wm_prog_data_dispatch_grf_start_reg(prog_data, ps, 0);
|
||||
|
|
@ -941,6 +943,7 @@ blorp_emit_ps_config(struct blorp_batch *batch,
|
|||
|
||||
wm._8PixelDispatchEnable = prog_data->dispatch_8;
|
||||
wm._16PixelDispatchEnable = prog_data->dispatch_16;
|
||||
wm._32PixelDispatchEnable = prog_data->dispatch_32;
|
||||
|
||||
wm.DispatchGRFStartRegisterForConstantSetupData0 =
|
||||
brw_wm_prog_data_dispatch_grf_start_reg(prog_data, wm, 0);
|
||||
|
|
|
|||
|
|
@ -685,9 +685,12 @@ struct brw_wm_prog_data {
|
|||
|
||||
uint8_t reg_blocks_8;
|
||||
uint8_t reg_blocks_16;
|
||||
uint8_t reg_blocks_32;
|
||||
|
||||
uint8_t dispatch_grf_start_reg_16;
|
||||
uint8_t dispatch_grf_start_reg_32;
|
||||
uint32_t prog_offset_16;
|
||||
uint32_t prog_offset_32;
|
||||
|
||||
struct {
|
||||
/** @{
|
||||
|
|
@ -705,6 +708,7 @@ struct brw_wm_prog_data {
|
|||
bool inner_coverage;
|
||||
bool dispatch_8;
|
||||
bool dispatch_16;
|
||||
bool dispatch_32;
|
||||
bool dual_src_blend;
|
||||
bool persample_dispatch;
|
||||
bool uses_pos_offset;
|
||||
|
|
@ -789,6 +793,7 @@ _brw_wm_prog_data_prog_offset(const struct brw_wm_prog_data *prog_data,
|
|||
switch (simd_width) {
|
||||
case 8: return 0;
|
||||
case 16: return prog_data->prog_offset_16;
|
||||
case 32: return prog_data->prog_offset_32;
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -804,6 +809,7 @@ _brw_wm_prog_data_dispatch_grf_start_reg(const struct brw_wm_prog_data *prog_dat
|
|||
switch (simd_width) {
|
||||
case 8: return prog_data->base.dispatch_grf_start_reg;
|
||||
case 16: return prog_data->dispatch_grf_start_reg_16;
|
||||
case 32: return prog_data->dispatch_grf_start_reg_32;
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -819,6 +825,7 @@ _brw_wm_prog_data_reg_blocks(const struct brw_wm_prog_data *prog_data,
|
|||
switch (simd_width) {
|
||||
case 8: return prog_data->reg_blocks_8;
|
||||
case 16: return prog_data->reg_blocks_16;
|
||||
case 32: return prog_data->reg_blocks_32;
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -127,6 +127,7 @@ fs_visitor::emit_dummy_fs()
|
|||
stage_prog_data->curb_read_length = 0;
|
||||
stage_prog_data->dispatch_grf_start_reg = 2;
|
||||
wm_prog_data->dispatch_grf_start_reg_16 = 2;
|
||||
wm_prog_data->dispatch_grf_start_reg_32 = 2;
|
||||
grf_used = 1; /* Gen4-5 don't allow zero GRF blocks */
|
||||
|
||||
calculate_cfg();
|
||||
|
|
|
|||
|
|
@ -1490,7 +1490,7 @@ emit_3dstate_ps(struct anv_pipeline *pipeline,
|
|||
anv_batch_emit(&pipeline->batch, GENX(3DSTATE_PS), ps) {
|
||||
ps._8PixelDispatchEnable = wm_prog_data->dispatch_8;
|
||||
ps._16PixelDispatchEnable = wm_prog_data->dispatch_16;
|
||||
ps._32PixelDispatchEnable = false;
|
||||
ps._32PixelDispatchEnable = wm_prog_data->dispatch_32;
|
||||
|
||||
ps.KernelStartPointer0 = fs_bin->kernel.offset +
|
||||
brw_wm_prog_data_prog_offset(wm_prog_data, ps, 0);
|
||||
|
|
|
|||
|
|
@ -132,6 +132,7 @@ blorp_emit_wm_state(struct blorp_batch *batch,
|
|||
|
||||
wm._8PixelDispatchEnable = prog_data->dispatch_8;
|
||||
wm._16PixelDispatchEnable = prog_data->dispatch_16;
|
||||
wm._32PixelDispatchEnable = prog_data->dispatch_32;
|
||||
|
||||
#if GEN_GEN == 4
|
||||
wm.KernelStartPointer0 =
|
||||
|
|
|
|||
|
|
@ -1895,6 +1895,7 @@ genX(upload_wm)(struct brw_context *brw)
|
|||
#if GEN_GEN <= 6
|
||||
wm._8PixelDispatchEnable = wm_prog_data->dispatch_8;
|
||||
wm._16PixelDispatchEnable = wm_prog_data->dispatch_16;
|
||||
wm._32PixelDispatchEnable = wm_prog_data->dispatch_32;
|
||||
#endif
|
||||
|
||||
#if GEN_GEN == 4
|
||||
|
|
@ -4029,6 +4030,7 @@ genX(upload_ps)(struct brw_context *brw)
|
|||
|
||||
ps._8PixelDispatchEnable = prog_data->dispatch_8;
|
||||
ps._16PixelDispatchEnable = prog_data->dispatch_16;
|
||||
ps._32PixelDispatchEnable = prog_data->dispatch_32;
|
||||
|
||||
ps.DispatchGRFStartRegisterForConstantSetupData0 =
|
||||
brw_wm_prog_data_dispatch_grf_start_reg(prog_data, ps, 0);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue