diff options
author | Marek Olšák <[email protected]> | 2017-09-05 19:02:13 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-09-07 13:00:07 +0200 |
commit | 89bf8668c2864bd5573fb72dedcac270ebcd2c07 (patch) | |
tree | a24326c8af9aaaf78b9b0e93ddc2b5c9bb47bcec /src/gallium/drivers/radeonsi/si_shader.c | |
parent | f974bb768b8a9def7effea561fad6972376fe35c (diff) |
radeonsi/gfx9: don't read LS out vertex stride from an SGPR in monolithic HS
-44 bytes in a monolithic LS-HS binary.
Tested-by: Dieter Nützel <[email protected]>
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_shader.c')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 362ee038e1c..96ba907a082 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -408,6 +408,11 @@ static LLVMValueRef get_tcs_in_vertex_dw_stride(struct si_shader_context *ctx) return LLVMConstInt(ctx->i32, stride * 4, 0); case PIPE_SHADER_TESS_CTRL: + if (ctx->screen->b.chip_class >= GFX9 && + ctx->shader->is_monolithic) { + stride = util_last_bit64(ctx->shader->key.part.tcs.ls->outputs_written); + return LLVMConstInt(ctx->i32, stride * 4, 0); + } return unpack_param(ctx, ctx->param_vs_state_bits, 24, 8); default: |