From 610c8c938e32a389fc6ae79418adf77319b419ee Mon Sep 17 00:00:00 2001 From: "Kristian H. Kristensen" Date: Thu, 10 Oct 2019 15:21:25 -0700 Subject: [PATCH] freedreno/registers: Update with GS, HS and DS registers Signed-off-by: Kristian H. Kristensen --- src/freedreno/registers/a6xx.xml | 107 +++++++++++++++++- src/freedreno/registers/adreno_pm4.xml | 1 + src/freedreno/vulkan/tu_cmd_buffer.c | 4 +- src/freedreno/vulkan/tu_pipeline.c | 2 +- src/gallium/drivers/freedreno/a6xx/fd6_emit.c | 4 +- .../drivers/freedreno/a6xx/fd6_rasterizer.c | 2 +- 6 files changed, 108 insertions(+), 12 deletions(-) diff --git a/src/freedreno/registers/a6xx.xml b/src/freedreno/registers/a6xx.xml index 393914879b6..4d83a5dd2cf 100644 --- a/src/freedreno/registers/a6xx.xml +++ b/src/freedreno/registers/a6xx.xml @@ -1825,9 +1825,18 @@ to upconvert to 32b float internally? + - - + + + + + + + + + + @@ -1891,6 +1900,10 @@ to upconvert to 32b float internally? + + + + @@ -1961,8 +1974,9 @@ to upconvert to 32b float internally? - - + + + @@ -2367,11 +2381,18 @@ to upconvert to 32b float internally? + + + + + + + @@ -2441,6 +2462,22 @@ to upconvert to 32b float internally? + + + num of varyings plus four for gl_Position (plus one if gl_PointSize) + plus # of transform-feedback (streamout) varyings if using the + hw streamout (rather than stg instructions in shader) + + + + + + + domain shader version of VPC_PACK @@ -2529,6 +2566,16 @@ to upconvert to 32b float internally? + + + geometry shader + + + + + + + hull shader? @@ -2551,8 +2598,22 @@ to upconvert to 32b float internally? - - + + + geometry shader + + + + + + + + + size in vec4s of per-primitive storage for gs + + + + @@ -2581,6 +2642,7 @@ to upconvert to 32b float internally? + @@ -2737,6 +2799,31 @@ to upconvert to 32b float internally? + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2761,6 +2848,14 @@ to upconvert to 32b float internally? + + + + + + + + diff --git a/src/freedreno/registers/adreno_pm4.xml b/src/freedreno/registers/adreno_pm4.xml index 05ed02cf10c..23705a7cad9 100644 --- a/src/freedreno/registers/adreno_pm4.xml +++ b/src/freedreno/registers/adreno_pm4.xml @@ -643,6 +643,7 @@ opcode: CP_LOAD_STATE4 (30) (4 dwords) + diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.c index 505a3ca0097..fdc3a8d1436 100644 --- a/src/freedreno/vulkan/tu_cmd_buffer.c +++ b/src/freedreno/vulkan/tu_cmd_buffer.c @@ -953,8 +953,8 @@ tu6_init_hw(struct tu_cmd_buffer *cmd, struct tu_cs *cs) tu_cs_emit_write_reg(cs, REG_A6XX_PC_UNKNOWN_9806, 0); tu_cs_emit_write_reg(cs, REG_A6XX_PC_UNKNOWN_9980, 0); - tu_cs_emit_write_reg(cs, REG_A6XX_PC_UNKNOWN_9B06, 0); - tu_cs_emit_write_reg(cs, REG_A6XX_PC_UNKNOWN_9B06, 0); + tu_cs_emit_write_reg(cs, REG_A6XX_PC_PRIMITIVE_CNTL_6, 0); + tu_cs_emit_write_reg(cs, REG_A6XX_PC_UNKNOWN_9B07, 0); tu_cs_emit_write_reg(cs, REG_A6XX_SP_UNKNOWN_A81B, 0); diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.c index ec375a4f794..03df9f97dfa 100644 --- a/src/freedreno/vulkan/tu_pipeline.c +++ b/src/freedreno/vulkan/tu_pipeline.c @@ -1141,7 +1141,7 @@ tu6_emit_gras_unknowns(struct tu_cs *cs) tu_cs_emit(cs, 0x80); tu_cs_emit_pkt4(cs, REG_A6XX_GRAS_UNKNOWN_8001, 1); tu_cs_emit(cs, 0x0); - tu_cs_emit_pkt4(cs, REG_A6XX_GRAS_UNKNOWN_8004, 1); + tu_cs_emit_pkt4(cs, REG_A6XX_GRAS_LAYER_CNTL, 1); tu_cs_emit(cs, 0x0); } diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c index a0d2259398b..eb4bb3160af 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c @@ -1261,8 +1261,8 @@ t7 opcode: CP_WAIT_FOR_IDLE (26) (1 dwords) WRITE(REG_A6XX_PC_UNKNOWN_9806, 0); WRITE(REG_A6XX_PC_UNKNOWN_9980, 0); - WRITE(REG_A6XX_PC_UNKNOWN_9B06, 0); - WRITE(REG_A6XX_PC_UNKNOWN_9B06, 0); + WRITE(REG_A6XX_PC_PRIMITIVE_CNTL_6, 0); + WRITE(REG_A6XX_PC_UNKNOWN_9B07, 0); WRITE(REG_A6XX_SP_UNKNOWN_A81B, 0); diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_rasterizer.c b/src/gallium/drivers/freedreno/a6xx/fd6_rasterizer.c index a50e471c68f..ef4cdc03577 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_rasterizer.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_rasterizer.c @@ -111,7 +111,7 @@ fd6_rasterizer_state_create(struct pipe_context *pctx, OUT_RING(ring, 0x80); OUT_PKT4(ring, REG_A6XX_GRAS_UNKNOWN_8001, 1); OUT_RING(ring, 0x0); - OUT_PKT4(ring, REG_A6XX_GRAS_UNKNOWN_8004, 1); + OUT_PKT4(ring, REG_A6XX_GRAS_LAYER_CNTL, 1); OUT_RING(ring, 0x0); OUT_PKT4(ring, REG_A6XX_GRAS_SU_CNTL, 1); -- 2.30.2