Merge branch 'gallium-userbuf'
[mesa.git] / src / gallium / drivers / radeonsi / evergreen_state.c
index 75d6cadc6cccab60284f20fd2751ae92d0e8f629..b094248fee181ff2d3bc0ebaf72200558fb98af8 100644 (file)
@@ -1166,24 +1166,6 @@ static void si_delete_sampler_state(struct pipe_context *ctx,
        free(state);
 }
 
-static unsigned si_map_swizzle(unsigned swizzle)
-{
-       switch (swizzle) {
-       case UTIL_FORMAT_SWIZZLE_Y:
-               return V_008F1C_SQ_SEL_Y;
-       case UTIL_FORMAT_SWIZZLE_Z:
-               return V_008F1C_SQ_SEL_Z;
-       case UTIL_FORMAT_SWIZZLE_W:
-               return V_008F1C_SQ_SEL_W;
-       case UTIL_FORMAT_SWIZZLE_0:
-               return V_008F1C_SQ_SEL_0;
-       case UTIL_FORMAT_SWIZZLE_1:
-               return V_008F1C_SQ_SEL_1;
-       default: /* UTIL_FORMAT_SWIZZLE_X */
-               return V_008F1C_SQ_SEL_X;
-       }
-}
-
 static struct pipe_sampler_view *evergreen_create_sampler_view(struct pipe_context *ctx,
                                                        struct pipe_resource *texture,
                                                        const struct pipe_sampler_view *state)
@@ -1259,9 +1241,9 @@ static struct pipe_sampler_view *evergreen_create_sampler_view(struct pipe_conte
 
        va = r600_resource_va(ctx->screen, texture);
        view->state[0] = (va + tmp->offset[0]) >> 8;
-       view->state[1] = ((va + tmp->offset[0]) >> 40) & 0xff;
-       view->state[1] |= (S_008F14_DATA_FORMAT(format) |
-                          S_008F14_NUM_FORMAT(num_format));
+       view->state[1] = (S_008F14_BASE_ADDRESS_HI((va + tmp->offset[0]) >> 40) |
+                         S_008F14_DATA_FORMAT(format) |
+                         S_008F14_NUM_FORMAT(num_format));
        view->state[2] = (S_008F18_WIDTH(texture->width0 - 1) |
                          S_008F18_HEIGHT(height - 1));
        view->state[3] = (S_008F1C_DST_SEL_X(si_map_swizzle(swizzle[0])) |
@@ -2087,9 +2069,9 @@ void si_pipe_shader_vs(struct pipe_context *ctx, struct si_pipe_shader *shader)
        r600_pipe_state_add_reg(rstate,
                                R_02870C_SPI_SHADER_POS_FORMAT,
                                S_02870C_POS0_EXPORT_FORMAT(V_02870C_SPI_SHADER_4COMP) |
-                               S_02870C_POS1_EXPORT_FORMAT(V_02870C_SPI_SHADER_4COMP) |
-                               S_02870C_POS2_EXPORT_FORMAT(V_02870C_SPI_SHADER_4COMP) |
-                               S_02870C_POS3_EXPORT_FORMAT(V_02870C_SPI_SHADER_4COMP),
+                               S_02870C_POS1_EXPORT_FORMAT(V_02870C_SPI_SHADER_NONE) |
+                               S_02870C_POS2_EXPORT_FORMAT(V_02870C_SPI_SHADER_NONE) |
+                               S_02870C_POS3_EXPORT_FORMAT(V_02870C_SPI_SHADER_NONE),
                                NULL, 0);
 
        va = r600_resource_va(ctx->screen, (void *)shader->bo);