diff options
author | Jason Ekstrand <jason.ekstrand@intel.com> | 2016-11-01 14:03:43 -0700 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2016-11-09 13:39:09 +0000 |
commit | 5be463694bfbeed3066601cbdb70825fe7e97859 (patch) | |
tree | fa7d9cc675ac24f91d1d8e80628df8ad30903906 /src/intel/blorp/blorp_genX_exec.h | |
parent | 88ebff8e2555a2572c483b1e2c224480482cbbac (diff) | |
download | external_mesa3d-5be463694bfbeed3066601cbdb70825fe7e97859.zip external_mesa3d-5be463694bfbeed3066601cbdb70825fe7e97859.tar.gz external_mesa3d-5be463694bfbeed3066601cbdb70825fe7e97859.tar.bz2 |
intel/blorp: Use wm_prog_data instead of hand-rolling our own
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98012
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 058304f0819c96fd18eb17911022a410540aa295)
[Emil Velikov: brw_compile_fs() has different signature]
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Conflicts:
src/intel/blorp/blorp.c
Diffstat (limited to 'src/intel/blorp/blorp_genX_exec.h')
-rw-r--r-- | src/intel/blorp/blorp_genX_exec.h | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h index ec0d022..2051859 100644 --- a/src/intel/blorp/blorp_genX_exec.h +++ b/src/intel/blorp/blorp_genX_exec.h @@ -207,7 +207,8 @@ blorp_emit_input_varying_data(struct blorp_batch *batch, for (unsigned i = 0; i < max_num_varyings; i++) { const gl_varying_slot attr = VARYING_SLOT_VAR0 + i; - if (!(params->wm_prog_data->inputs_read & (1ull << attr))) + const int input_index = params->wm_prog_data->urb_setup[attr]; + if (input_index < 0) continue; memcpy(inputs, inputs_src + i * 4, vec4_size_in_bytes); @@ -401,7 +402,7 @@ static void blorp_emit_sf_config(struct blorp_batch *batch, const struct blorp_params *params) { - const struct brw_blorp_prog_data *prog_data = params->wm_prog_data; + const struct brw_wm_prog_data *prog_data = params->wm_prog_data; /* 3DSTATE_SF * @@ -502,7 +503,7 @@ static void blorp_emit_ps_config(struct blorp_batch *batch, const struct blorp_params *params) { - const struct brw_blorp_prog_data *prog_data = params->wm_prog_data; + const struct brw_wm_prog_data *prog_data = params->wm_prog_data; /* Even when thread dispatch is disabled, max threads (dw5.25:31) must be * nonzero to prevent the GPU from hanging. While the documentation doesn't @@ -527,16 +528,16 @@ blorp_emit_ps_config(struct blorp_batch *batch, if (prog_data) { ps.DispatchGRFStartRegisterForConstantSetupData0 = - prog_data->first_curbe_grf_0; + prog_data->base.dispatch_grf_start_reg; ps.DispatchGRFStartRegisterForConstantSetupData2 = - prog_data->first_curbe_grf_2; + prog_data->dispatch_grf_start_reg_2; ps._8PixelDispatchEnable = prog_data->dispatch_8; ps._16PixelDispatchEnable = prog_data->dispatch_16; ps.KernelStartPointer0 = params->wm_prog_kernel; ps.KernelStartPointer2 = - params->wm_prog_kernel + prog_data->ksp_offset_2; + params->wm_prog_kernel + prog_data->prog_offset_2; } /* 3DSTATE_PS expects the number of threads per PSD, which is always 64; @@ -577,7 +578,7 @@ blorp_emit_ps_config(struct blorp_batch *batch, if (prog_data) { psx.PixelShaderValid = true; psx.AttributeEnable = prog_data->num_varying_inputs > 0; - psx.PixelShaderIsPerSample = prog_data->persample_msaa_dispatch; + psx.PixelShaderIsPerSample = prog_data->persample_dispatch; } if (params->src.enabled) @@ -612,7 +613,7 @@ blorp_emit_ps_config(struct blorp_batch *batch, if (params->dst.surf.samples > 1) { wm.MultisampleRasterizationMode = MSRASTMODE_ON_PATTERN; wm.MultisampleDispatchMode = - (prog_data && prog_data->persample_msaa_dispatch) ? + (prog_data && prog_data->persample_dispatch) ? MSDISPMODE_PERSAMPLE : MSDISPMODE_PERPIXEL; } else { wm.MultisampleRasterizationMode = MSRASTMODE_OFF_PIXEL; @@ -630,13 +631,13 @@ blorp_emit_ps_config(struct blorp_batch *batch, if (prog_data) { ps.DispatchGRFStartRegisterforConstantSetupData0 = - prog_data->first_curbe_grf_0; + prog_data->base.dispatch_grf_start_reg; ps.DispatchGRFStartRegisterforConstantSetupData2 = - prog_data->first_curbe_grf_2; + prog_data->dispatch_grf_start_reg_2; ps.KernelStartPointer0 = params->wm_prog_kernel; ps.KernelStartPointer2 = - params->wm_prog_kernel + prog_data->ksp_offset_2; + params->wm_prog_kernel + prog_data->prog_offset_2; ps._8PixelDispatchEnable = prog_data->dispatch_8; ps._16PixelDispatchEnable = prog_data->dispatch_16; @@ -692,13 +693,13 @@ blorp_emit_ps_config(struct blorp_batch *batch, wm.ThreadDispatchEnable = true; wm.DispatchGRFStartRegisterforConstantSetupData0 = - prog_data->first_curbe_grf_0; + prog_data->base.dispatch_grf_start_reg; wm.DispatchGRFStartRegisterforConstantSetupData2 = - prog_data->first_curbe_grf_2; + prog_data->dispatch_grf_start_reg_2; wm.KernelStartPointer0 = params->wm_prog_kernel; wm.KernelStartPointer2 = - params->wm_prog_kernel + prog_data->ksp_offset_2; + params->wm_prog_kernel + prog_data->prog_offset_2; wm._8PixelDispatchEnable = prog_data->dispatch_8; wm._16PixelDispatchEnable = prog_data->dispatch_16; @@ -714,7 +715,7 @@ blorp_emit_ps_config(struct blorp_batch *batch, if (params->dst.surf.samples > 1) { wm.MultisampleRasterizationMode = MSRASTMODE_ON_PATTERN; wm.MultisampleDispatchMode = - (prog_data && prog_data->persample_msaa_dispatch) ? + (prog_data && prog_data->persample_dispatch) ? MSDISPMODE_PERSAMPLE : MSDISPMODE_PERPIXEL; } else { wm.MultisampleRasterizationMode = MSRASTMODE_OFF_PIXEL; |