radeonsi: enlarge SI_NUM_SHADERS for mesh shader
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37505>
This commit is contained in:
@@ -2844,8 +2844,6 @@ static void si_emit_gfx_resources_add_all_to_bo_list(struct si_context *sctx, un
|
||||
|
||||
void si_init_all_descriptors(struct si_context *sctx)
|
||||
{
|
||||
int i;
|
||||
unsigned first_shader = sctx->is_gfx_queue ? 0 : MESA_SHADER_COMPUTE;
|
||||
unsigned hs_sgpr0, gs_sgpr0;
|
||||
|
||||
if (sctx->gfx_level >= GFX12) {
|
||||
@@ -2859,7 +2857,10 @@ void si_init_all_descriptors(struct si_context *sctx)
|
||||
gs_sgpr0 = R_00B208_SPI_SHADER_USER_DATA_ADDR_LO_GS;
|
||||
}
|
||||
|
||||
for (i = first_shader; i < SI_NUM_SHADERS; i++) {
|
||||
for (unsigned i = 0; i < SI_NUM_SHADERS; i++) {
|
||||
if (!sctx->is_gfx_queue && i != MESA_SHADER_COMPUTE)
|
||||
continue;
|
||||
|
||||
bool is_2nd =
|
||||
sctx->gfx_level >= GFX9 && (i == MESA_SHADER_TESS_CTRL || i == MESA_SHADER_GEOMETRY);
|
||||
unsigned num_sampler_slots = SI_NUM_IMAGE_SLOTS / 2 + SI_NUM_SAMPLERS;
|
||||
|
||||
@@ -519,7 +519,6 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, unsign
|
||||
|
||||
struct si_context *sctx = CALLOC_STRUCT(si_context);
|
||||
struct radeon_winsys *ws = sscreen->ws;
|
||||
int shader, i;
|
||||
|
||||
if (!sctx) {
|
||||
mesa_loge("can't allocate a context");
|
||||
@@ -770,9 +769,11 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, unsign
|
||||
}
|
||||
sctx->null_const_buf.buffer_size = sctx->null_const_buf.buffer->width0;
|
||||
|
||||
unsigned start_shader = sctx->is_gfx_queue ? 0 : MESA_SHADER_COMPUTE;
|
||||
for (shader = start_shader; shader < SI_NUM_SHADERS; shader++) {
|
||||
for (i = 0; i < SI_NUM_CONST_BUFFERS; i++) {
|
||||
for (unsigned shader = 0; shader < SI_NUM_SHADERS; shader++) {
|
||||
if (!sctx->is_gfx_queue && shader != MESA_SHADER_COMPUTE)
|
||||
continue;
|
||||
|
||||
for (unsigned i = 0; i < SI_NUM_CONST_BUFFERS; i++) {
|
||||
sctx->b.set_constant_buffer(&sctx->b, shader, i, &sctx->null_const_buf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#define SI_NUM_GRAPHICS_SHADERS (MESA_SHADER_FRAGMENT + 1)
|
||||
#define SI_NUM_SHADERS (MESA_SHADER_COMPUTE + 1)
|
||||
#define SI_NUM_SHADERS (MESA_SHADER_MESH + 1)
|
||||
|
||||
#define SI_NUM_VERTEX_BUFFERS SI_MAX_ATTRIBS
|
||||
#define SI_NUM_SAMPLERS 32 /* OpenGL textures units per shader */
|
||||
|
||||
Reference in New Issue
Block a user