mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 15:58:05 +02:00
r600: workaround empty geom shader.
We need to emit at least one cut/emit in every
geometry shader, the easiest workaround it to
stick a single CUT at the top of each geom shader.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Cc: "10.6 11.0 11.1" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 4f34722575)
This commit is contained in:
parent
dd37db0c80
commit
f1bb27acc5
1 changed files with 5 additions and 0 deletions
|
|
@ -2206,6 +2206,11 @@ static int r600_shader_from_tgsi(struct r600_context *rctx,
|
|||
if (ctx.type == TGSI_PROCESSOR_GEOMETRY) {
|
||||
struct r600_bytecode_alu alu;
|
||||
int r;
|
||||
|
||||
/* GS thread with no output workaround - emit a cut at start of GS */
|
||||
if (ctx.bc->chip_class == R600)
|
||||
r600_bytecode_add_cfinst(ctx.bc, CF_OP_CUT_VERTEX);
|
||||
|
||||
for (j = 0; j < 4; j++) {
|
||||
memset(&alu, 0, sizeof(struct r600_bytecode_alu));
|
||||
alu.op = ALU_OP1_MOV;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue