mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 19:58:09 +02:00
radeonsi: move SI_SPI_PS_INPUT_ADDR_FOR_PROLOG into a helper function
it will be dynamic
This commit is contained in:
parent
6fdfb15456
commit
c1dbfc20fc
3 changed files with 21 additions and 15 deletions
|
|
@ -9,19 +9,6 @@
|
||||||
|
|
||||||
#include "si_shader.h"
|
#include "si_shader.h"
|
||||||
|
|
||||||
#define SI_SPI_PS_INPUT_ADDR_FOR_PROLOG ( \
|
|
||||||
S_0286D0_PERSP_SAMPLE_ENA(1) | \
|
|
||||||
S_0286D0_PERSP_CENTER_ENA(1) | \
|
|
||||||
S_0286D0_PERSP_CENTROID_ENA(1) | \
|
|
||||||
S_0286D0_LINEAR_SAMPLE_ENA(1) | \
|
|
||||||
S_0286D0_LINEAR_CENTER_ENA(1) | \
|
|
||||||
S_0286D0_LINEAR_CENTROID_ENA(1) | \
|
|
||||||
S_0286D0_LINE_STIPPLE_TEX_ENA(1) | \
|
|
||||||
S_0286D0_FRONT_FACE_ENA(1) | \
|
|
||||||
S_0286D0_ANCILLARY_ENA(1) | \
|
|
||||||
S_0286D0_SAMPLE_COVERAGE_ENA(1) | \
|
|
||||||
S_0286D0_POS_FIXED_PT_ENA(1))
|
|
||||||
|
|
||||||
struct util_debug_callback;
|
struct util_debug_callback;
|
||||||
|
|
||||||
struct si_shader_args {
|
struct si_shader_args {
|
||||||
|
|
@ -159,6 +146,7 @@ void si_get_late_shader_variant_info(struct si_shader *shader, struct si_shader_
|
||||||
nir_shader *nir);
|
nir_shader *nir);
|
||||||
void si_set_spi_ps_input_config_for_separate_prolog(struct si_shader *shader);
|
void si_set_spi_ps_input_config_for_separate_prolog(struct si_shader *shader);
|
||||||
void si_fixup_spi_ps_input_config(struct si_shader *shader);
|
void si_fixup_spi_ps_input_config(struct si_shader *shader);
|
||||||
|
unsigned si_get_spi_ps_input_addr_for_prolog(struct si_shader_selector *sel);
|
||||||
void si_shader_update_spi_shader_formats(struct si_shader *shader, nir_shader *nir);
|
void si_shader_update_spi_shader_formats(struct si_shader *shader, nir_shader *nir);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -191,7 +191,8 @@ static void si_llvm_create_main_func(struct si_shader_context *ctx)
|
||||||
/* Reserve register locations for VGPR inputs the PS prolog may need. */
|
/* Reserve register locations for VGPR inputs the PS prolog may need. */
|
||||||
if (ctx->stage == MESA_SHADER_FRAGMENT && !ctx->shader->is_monolithic) {
|
if (ctx->stage == MESA_SHADER_FRAGMENT && !ctx->shader->is_monolithic) {
|
||||||
ac_llvm_add_target_dep_function_attr(
|
ac_llvm_add_target_dep_function_attr(
|
||||||
ctx->main_fn.value, "InitialPSInputAddr", SI_SPI_PS_INPUT_ADDR_FOR_PROLOG);
|
ctx->main_fn.value, "InitialPSInputAddr",
|
||||||
|
si_get_spi_ps_input_addr_for_prolog(shader->selector));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -390,7 +390,7 @@ void si_get_shader_variant_info(struct si_shader *shader,
|
||||||
* Reserve register locations for VGPR inputs the PS prolog may need.
|
* Reserve register locations for VGPR inputs the PS prolog may need.
|
||||||
*/
|
*/
|
||||||
shader->config.spi_ps_input_addr = shader->config.spi_ps_input_ena |
|
shader->config.spi_ps_input_addr = shader->config.spi_ps_input_ena |
|
||||||
SI_SPI_PS_INPUT_ADDR_FOR_PROLOG;
|
si_get_spi_ps_input_addr_for_prolog(shader->selector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -607,3 +607,20 @@ void si_fixup_spi_ps_input_config(struct si_shader *shader)
|
||||||
shader->config.spi_ps_input_ena |= S_0286CC_PERSP_SAMPLE_ENA(1);
|
shader->config.spi_ps_input_ena |= S_0286CC_PERSP_SAMPLE_ENA(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned si_get_spi_ps_input_addr_for_prolog(struct si_shader_selector *sel)
|
||||||
|
{
|
||||||
|
unsigned spi_ps_input_addr = S_0286D0_PERSP_SAMPLE_ENA(1) |
|
||||||
|
S_0286D0_PERSP_CENTER_ENA(1) |
|
||||||
|
S_0286D0_PERSP_CENTROID_ENA(1) |
|
||||||
|
S_0286D0_LINEAR_SAMPLE_ENA(1) |
|
||||||
|
S_0286D0_LINEAR_CENTER_ENA(1) |
|
||||||
|
S_0286D0_LINEAR_CENTROID_ENA(1) |
|
||||||
|
S_0286D0_LINE_STIPPLE_TEX_ENA(1) |
|
||||||
|
S_0286D0_FRONT_FACE_ENA(1) |
|
||||||
|
S_0286D0_ANCILLARY_ENA(1) |
|
||||||
|
S_0286D0_SAMPLE_COVERAGE_ENA(1) |
|
||||||
|
S_0286D0_POS_FIXED_PT_ENA(1);
|
||||||
|
|
||||||
|
return spi_ps_input_addr;
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue