r600g: reorder evergreen draw packets to be smaller.
authorDave Airlie <airlied@redhat.com>
Tue, 7 Jun 2011 01:30:47 +0000 (11:30 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 8 Jun 2011 01:47:00 +0000 (11:47 +1000)
We were always re-emitting lots of unnecessary changes here,
avoid doing that.

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/winsys/r600/drm/evergreen_hw_context.c

index 3cf41c1f9f962265d7e7c2d5676d2b23ee1cf7c6..a95182773a710467ac858059c13c4e09e103427f 100644 (file)
@@ -125,6 +125,8 @@ static const struct r600_reg evergreen_context_reg_list[] = {
        {R_028244_PA_SC_GENERIC_SCISSOR_BR, 0, 0, 0},
        {R_028250_PA_SC_VPORT_SCISSOR_0_TL, 0, 0, 0},
        {R_028254_PA_SC_VPORT_SCISSOR_0_BR, 0, 0, 0},
+       {R_0282D0_PA_SC_VPORT_ZMIN_0, 0, 0, 0},
+       {R_0282D4_PA_SC_VPORT_ZMAX_0, 0, 0, 0},
        {R_028350_SX_MISC, 0, 0, 0},
        {R_028380_SQ_VTX_SEMANTIC_0, 0, 0, 0},
        {R_028384_SQ_VTX_SEMANTIC_1, 0, 0, 0},
@@ -158,12 +160,12 @@ static const struct r600_reg evergreen_context_reg_list[] = {
        {R_0283F4_SQ_VTX_SEMANTIC_29, 0, 0, 0},
        {R_0283F8_SQ_VTX_SEMANTIC_30, 0, 0, 0},
        {R_0283FC_SQ_VTX_SEMANTIC_31, 0, 0, 0},
-       {R_0282D0_PA_SC_VPORT_ZMIN_0, 0, 0, 0},
-       {R_0282D4_PA_SC_VPORT_ZMAX_0, 0, 0, 0},
+       {GROUP_FORCE_NEW_BLOCK, 0, 0, 0},
        {R_028400_VGT_MAX_VTX_INDX, 0, 0, 0},
        {R_028404_VGT_MIN_VTX_INDX, 0, 0, 0},
        {R_028408_VGT_INDX_OFFSET, 0, 0, 0},
        {R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX, 0, 0, 0},
+       {GROUP_FORCE_NEW_BLOCK, 0, 0, 0},
        {R_028410_SX_ALPHA_TEST_CONTROL, 0, 0, 0},
        {R_028414_CB_BLEND_RED, 0, 0, 0},
        {R_028418_CB_BLEND_GREEN, 0, 0, 0},
@@ -487,6 +489,8 @@ static const struct r600_reg cayman_context_reg_list[] = {
        {R_028244_PA_SC_GENERIC_SCISSOR_BR, 0, 0, 0},
        {R_028250_PA_SC_VPORT_SCISSOR_0_TL, 0, 0, 0},
        {R_028254_PA_SC_VPORT_SCISSOR_0_BR, 0, 0, 0},
+       {R_0282D0_PA_SC_VPORT_ZMIN_0, 0, 0, 0},
+       {R_0282D4_PA_SC_VPORT_ZMAX_0, 0, 0, 0},
        {R_028350_SX_MISC, 0, 0, 0},
        {R_028380_SQ_VTX_SEMANTIC_0, 0, 0, 0},
        {R_028384_SQ_VTX_SEMANTIC_1, 0, 0, 0},
@@ -520,12 +524,12 @@ static const struct r600_reg cayman_context_reg_list[] = {
        {R_0283F4_SQ_VTX_SEMANTIC_29, 0, 0, 0},
        {R_0283F8_SQ_VTX_SEMANTIC_30, 0, 0, 0},
        {R_0283FC_SQ_VTX_SEMANTIC_31, 0, 0, 0},
-       {R_0282D0_PA_SC_VPORT_ZMIN_0, 0, 0, 0},
-       {R_0282D4_PA_SC_VPORT_ZMAX_0, 0, 0, 0},
+       {GROUP_FORCE_NEW_BLOCK, 0, 0, 0},
        {R_028400_VGT_MAX_VTX_INDX, 0, 0, 0},
        {R_028404_VGT_MIN_VTX_INDX, 0, 0, 0},
        {R_028408_VGT_INDX_OFFSET, 0, 0, 0},
        {R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX, 0, 0, 0},
+       {GROUP_FORCE_NEW_BLOCK, 0, 0, 0},
        {R_028410_SX_ALPHA_TEST_CONTROL, 0, 0, 0},
        {R_028414_CB_BLEND_RED, 0, 0, 0},
        {R_028418_CB_BLEND_GREEN, 0, 0, 0},