r600g: use TGSI_PROPERTY to disable viewport and clipping
[mesa.git] / src / gallium / drivers / r600 / r600_state.c
index 31d7bd045192318829fff3096eaf1b6d3b23ce87..9e7a8e95289267fe973c002837e0e4877cf3d869 100644 (file)
@@ -2375,8 +2375,6 @@ void r600_init_atom_start_cs(struct r600_context *rctx)
                r600_store_value(cb, 0x3F800000); /* R_0282D4_PA_SC_VPORT_ZMAX_0 */
        }
 
-       r600_store_context_reg(cb, R_028818_PA_CL_VTE_CNTL, 0x43F);
-
        r600_store_context_reg(cb, R_028200_PA_SC_WINDOW_OFFSET, 0);
        r600_store_context_reg(cb, R_02820C_PA_SC_CLIPRECT_RULE, 0xFFFF);
 
@@ -2588,6 +2586,17 @@ void r600_update_vs_state(struct pipe_context *ctx, struct r600_pipe_shader *sha
        r600_store_context_reg(cb, R_028868_SQ_PGM_RESOURCES_VS,
                               S_028868_NUM_GPRS(rshader->bc.ngpr) |
                               S_028868_STACK_SIZE(rshader->bc.nstack));
+       if (rshader->vs_position_window_space) {
+               r600_store_context_reg(cb, R_028818_PA_CL_VTE_CNTL,
+                       S_028818_VTX_XY_FMT(1) | S_028818_VTX_Z_FMT(1));
+       } else {
+               r600_store_context_reg(cb, R_028818_PA_CL_VTE_CNTL,
+                       S_028818_VTX_W0_FMT(1) |
+                       S_028818_VPORT_X_SCALE_ENA(1) | S_028818_VPORT_X_OFFSET_ENA(1) |
+                       S_028818_VPORT_Y_SCALE_ENA(1) | S_028818_VPORT_Y_OFFSET_ENA(1) |
+                       S_028818_VPORT_Z_SCALE_ENA(1) | S_028818_VPORT_Z_OFFSET_ENA(1));
+
+       }
        r600_store_context_reg(cb, R_028858_SQ_PGM_START_VS, 0);
        /* After that, the NOP relocation packet must be emitted (shader->bo, RADEON_USAGE_READ). */