diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 211db9f6f2f..12ccbab04e1 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -4952,6 +4952,14 @@ static void declare_tess_lds(struct si_shader_context *ctx) unsigned patch_dw_size = vertex_data_dw_size*2 + patch_data_dw_size; unsigned lds_dwords = patch_dw_size; + if (ctx->screen->b.chip_class <= SI) { + /* This is a horrible temporary workaround to make tesselation + * not be completely broken on SI now that LLVM checks that + * the declared LDS size fits into the device maximum of 32KB. + */ + lds_dwords = 8 * 1024; + } + /* The actual size is computed outside of the shader to reduce * the number of shader variants. */ ctx->lds = |