r600g: Use R600_MAX_VIEWPORTS instead of 16
authorAlexandre Demers <alexandre.f.demers@gmail.com>
Wed, 25 Feb 2015 06:50:49 +0000 (01:50 -0500)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 9 Mar 2015 22:02:05 +0000 (23:02 +0100)
Lets define R600_MAX_VIEWPORTS instead of using 16 here and there
in the code when looping through viewports and scissors. It is
easier to understand what this number represents.

v2: Missed a case where R600_MAX_VIEWPORTS should have been used.

Signed-off-by: Alexandre Demers <alexandre.f.demers@gmail.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/r600/r600_pipe.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_state.c

index 8aa8082e8bca252fe4a2bf85415fdc9c4eb855f8..f0b04f004fbb65bd0886ffcb426d83cf2553a8db 100644 (file)
@@ -2293,8 +2293,8 @@ static void cayman_init_atom_start_cs(struct r600_context *rctx)
        r600_store_context_reg(cb, R_028200_PA_SC_WINDOW_OFFSET, 0);
        r600_store_context_reg(cb, R_02820C_PA_SC_CLIPRECT_RULE, 0xFFFF);
 
-       r600_store_context_reg_seq(cb, R_0282D0_PA_SC_VPORT_ZMIN_0, 2 * 16);
-       for (tmp = 0; tmp < 16; tmp++) {
+       r600_store_context_reg_seq(cb, R_0282D0_PA_SC_VPORT_ZMIN_0, 2 * R600_MAX_VIEWPORTS);
+       for (tmp = 0; tmp < R600_MAX_VIEWPORTS; tmp++) {
                r600_store_value(cb, 0); /* R_0282D0_PA_SC_VPORT_ZMIN_0 */
                r600_store_value(cb, fui(1.0)); /* R_0282D4_PA_SC_VPORT_ZMAX_0 */
        }
@@ -2727,8 +2727,8 @@ void evergreen_init_atom_start_cs(struct r600_context *rctx)
        r600_store_context_reg(cb, R_02820C_PA_SC_CLIPRECT_RULE, 0xFFFF);
        r600_store_context_reg(cb, R_028230_PA_SC_EDGERULE, 0xAAAAAAAA);
 
-       r600_store_context_reg_seq(cb, R_0282D0_PA_SC_VPORT_ZMIN_0, 2 * 16);
-       for (tmp = 0; tmp < 16; tmp++) {
+       r600_store_context_reg_seq(cb, R_0282D0_PA_SC_VPORT_ZMIN_0, 2 * R600_MAX_VIEWPORTS);
+       for (tmp = 0; tmp < R600_MAX_VIEWPORTS; tmp++) {
                r600_store_value(cb, 0); /* R_0282D0_PA_SC_VPORT_ZMIN_0 */
                r600_store_value(cb, fui(1.0)); /* R_0282D4_PA_SC_VPORT_ZMAX_0 */
        }
@@ -3458,7 +3458,7 @@ void evergreen_init_state_functions(struct r600_context *rctx)
        r600_init_atom(rctx, &rctx->dsa_state.atom, id++, r600_emit_cso_state, 0);
        r600_init_atom(rctx, &rctx->poly_offset_state.atom, id++, evergreen_emit_polygon_offset, 6);
        r600_init_atom(rctx, &rctx->rasterizer_state.atom, id++, r600_emit_cso_state, 0);
-       for (i = 0; i < 16; i++) {
+       for (i = 0; i < R600_MAX_VIEWPORTS; i++) {
                r600_init_atom(rctx, &rctx->viewport[i].atom, id++, r600_emit_viewport_state, 8);
                r600_init_atom(rctx, &rctx->scissor[i].atom, id++, evergreen_emit_scissor_state, 4);
                rctx->viewport[i].idx = i;
index cd57eedf5bd3d1897064d81e76b3c0e4b51b64dc..7961a96b67e4a161210d11c7720b01b659d27a83 100644 (file)
@@ -307,7 +307,7 @@ void r600_begin_new_cs(struct r600_context *ctx)
        ctx->poly_offset_state.atom.dirty = true;
        ctx->vgt_state.atom.dirty = true;
        ctx->sample_mask.atom.dirty = true;
-       for (i = 0; i < 16; i++) {
+       for (i = 0; i < R600_MAX_VIEWPORTS; i++) {
                ctx->scissor[i].atom.dirty = true;
                ctx->viewport[i].atom.dirty = true;
        }
index c8a0e9cb624cbb1b6d650ed6e456631b1e6da14f..24d901ead8194d6a88318843f00578b31132cd3e 100644 (file)
@@ -374,7 +374,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
                return 8;
 
        case PIPE_CAP_MAX_VIEWPORTS:
-               return 16;
+               return R600_MAX_VIEWPORTS;
 
        /* Timer queries, present when the clock frequency is non zero. */
        case PIPE_CAP_QUERY_TIME_ELAPSED:
index 72378548733422a79f049439cb6ac7b5fbbe5df7..ac698950434730a1860c33bf31d2b4aa6e1f2f54 100644 (file)
@@ -38,6 +38,8 @@
 
 #define R600_NUM_ATOMS 73
 
+#define R600_MAX_VIEWPORTS 16
+
 /* read caches */
 #define R600_CONTEXT_INV_VERTEX_CACHE          (R600_CONTEXT_PRIVATE_FLAG << 0)
 #define R600_CONTEXT_INV_TEX_CACHE             (R600_CONTEXT_PRIVATE_FLAG << 1)
@@ -443,12 +445,12 @@ struct r600_context {
        struct r600_poly_offset_state   poly_offset_state;
        struct r600_cso_state           rasterizer_state;
        struct r600_sample_mask         sample_mask;
-       struct r600_scissor_state       scissor[16];
+       struct r600_scissor_state       scissor[R600_MAX_VIEWPORTS];
        struct r600_seamless_cube_map   seamless_cube_map;
        struct r600_config_state        config_state;
        struct r600_stencil_ref_state   stencil_ref;
        struct r600_vgt_state           vgt_state;
-       struct r600_viewport_state      viewport[16];
+       struct r600_viewport_state      viewport[R600_MAX_VIEWPORTS];
        /* Shaders and shader resources. */
        struct r600_cso_state           vertex_fetch_shader;
        struct r600_shader_state        vertex_shader;
index 26d7300e0e9cc23a0bf46a2b93968cefcb15542b..30514454f69b96a1b8ae3416beb393154c51b91e 100644 (file)
@@ -2387,8 +2387,8 @@ void r600_init_atom_start_cs(struct r600_context *rctx)
        r600_store_value(cb, fui(1.0)); /* R_028C14_PA_CL_GB_HORZ_CLIP_ADJ */
        r600_store_value(cb, fui(1.0)); /* R_028C18_PA_CL_GB_HORZ_DISC_ADJ */
 
-       r600_store_context_reg_seq(cb, R_0282D0_PA_SC_VPORT_ZMIN_0, 2 * 16);
-       for (tmp = 0; tmp < 16; tmp++) {
+       r600_store_context_reg_seq(cb, R_0282D0_PA_SC_VPORT_ZMIN_0, 2 * R600_MAX_VIEWPORTS);
+       for (tmp = 0; tmp < R600_MAX_VIEWPORTS; tmp++) {
                r600_store_value(cb, 0); /* R_0282D0_PA_SC_VPORT_ZMIN_0 */
                r600_store_value(cb, fui(1.0)); /* R_0282D4_PA_SC_VPORT_ZMAX_0 */
        }
@@ -3065,7 +3065,7 @@ void r600_init_state_functions(struct r600_context *rctx)
        r600_init_atom(rctx, &rctx->dsa_state.atom, id++, r600_emit_cso_state, 0);
        r600_init_atom(rctx, &rctx->poly_offset_state.atom, id++, r600_emit_polygon_offset, 6);
        r600_init_atom(rctx, &rctx->rasterizer_state.atom, id++, r600_emit_cso_state, 0);
-       for (i = 0;i < 16; i++) {
+       for (i = 0;i < R600_MAX_VIEWPORTS; i++) {
                r600_init_atom(rctx, &rctx->scissor[i].atom, id++, r600_emit_scissor_state, 4);
                r600_init_atom(rctx, &rctx->viewport[i].atom, id++, r600_emit_viewport_state, 8);
                rctx->scissor[i].idx = i;