radv: move shader_z_format calculation to pipeline.
No need to recalculate this every time. Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -709,10 +709,7 @@ radv_emit_fragment_shader(struct radv_cmd_buffer *cmd_buffer,
|
|||||||
radeon_set_context_reg(cmd_buffer->cs, R_0286E0_SPI_BARYC_CNTL, spi_baryc_cntl);
|
radeon_set_context_reg(cmd_buffer->cs, R_0286E0_SPI_BARYC_CNTL, spi_baryc_cntl);
|
||||||
|
|
||||||
radeon_set_context_reg(cmd_buffer->cs, R_028710_SPI_SHADER_Z_FORMAT,
|
radeon_set_context_reg(cmd_buffer->cs, R_028710_SPI_SHADER_Z_FORMAT,
|
||||||
ps->info.fs.writes_sample_mask ? V_028710_SPI_SHADER_32_ABGR :
|
pipeline->graphics.shader_z_format);
|
||||||
ps->info.fs.writes_stencil ? V_028710_SPI_SHADER_32_GR :
|
|
||||||
ps->info.fs.writes_z ? V_028710_SPI_SHADER_32_R :
|
|
||||||
V_028710_SPI_SHADER_ZERO);
|
|
||||||
|
|
||||||
radeon_set_context_reg(cmd_buffer->cs, R_028714_SPI_SHADER_COL_FORMAT, blend->spi_shader_col_format);
|
radeon_set_context_reg(cmd_buffer->cs, R_028714_SPI_SHADER_COL_FORMAT, blend->spi_shader_col_format);
|
||||||
|
|
||||||
|
@@ -1666,6 +1666,12 @@ radv_pipeline_init(struct radv_pipeline *pipeline,
|
|||||||
S_02880C_EXEC_ON_HIER_FAIL(ps->info.fs.writes_memory) |
|
S_02880C_EXEC_ON_HIER_FAIL(ps->info.fs.writes_memory) |
|
||||||
S_02880C_EXEC_ON_NOOP(ps->info.fs.writes_memory);
|
S_02880C_EXEC_ON_NOOP(ps->info.fs.writes_memory);
|
||||||
|
|
||||||
|
pipeline->graphics.shader_z_format =
|
||||||
|
ps->info.fs.writes_sample_mask ? V_028710_SPI_SHADER_32_ABGR :
|
||||||
|
ps->info.fs.writes_stencil ? V_028710_SPI_SHADER_32_GR :
|
||||||
|
ps->info.fs.writes_z ? V_028710_SPI_SHADER_32_R :
|
||||||
|
V_028710_SPI_SHADER_ZERO;
|
||||||
|
|
||||||
const VkPipelineVertexInputStateCreateInfo *vi_info =
|
const VkPipelineVertexInputStateCreateInfo *vi_info =
|
||||||
pCreateInfo->pVertexInputState;
|
pCreateInfo->pVertexInputState;
|
||||||
for (uint32_t i = 0; i < vi_info->vertexAttributeDescriptionCount; i++) {
|
for (uint32_t i = 0; i < vi_info->vertexAttributeDescriptionCount; i++) {
|
||||||
|
@@ -956,6 +956,7 @@ struct radv_pipeline {
|
|||||||
struct radv_raster_state raster;
|
struct radv_raster_state raster;
|
||||||
struct radv_multisample_state ms;
|
struct radv_multisample_state ms;
|
||||||
uint32_t db_shader_control;
|
uint32_t db_shader_control;
|
||||||
|
uint32_t shader_z_format;
|
||||||
unsigned prim;
|
unsigned prim;
|
||||||
unsigned gs_out;
|
unsigned gs_out;
|
||||||
uint32_t vgt_gs_mode;
|
uint32_t vgt_gs_mode;
|
||||||
|
Reference in New Issue
Block a user