diff options
Diffstat (limited to 'src/gallium/drivers/svga/svga_surface.h')
-rw-r--r-- | src/gallium/drivers/svga/svga_surface.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gallium/drivers/svga/svga_surface.h b/src/gallium/drivers/svga/svga_surface.h index ed9f37a74a6..18cb9c1869d 100644 --- a/src/gallium/drivers/svga/svga_surface.h +++ b/src/gallium/drivers/svga/svga_surface.h @@ -125,5 +125,25 @@ svga_surface_const(const struct pipe_surface *surface) struct pipe_surface * svga_validate_surface_view(struct svga_context *svga, struct svga_surface *s); +static inline SVGA3dResourceType +svga_resource_type(enum pipe_texture_target target) +{ + switch (target) { + case PIPE_TEXTURE_1D: + case PIPE_TEXTURE_1D_ARRAY: + return SVGA3D_RESOURCE_TEXTURE1D; + case PIPE_TEXTURE_RECT: + case PIPE_TEXTURE_2D: + case PIPE_TEXTURE_2D_ARRAY: + case PIPE_TEXTURE_CUBE: + /* drawing to cube map is treated as drawing to 2D array */ + return SVGA3D_RESOURCE_TEXTURE2D; + case PIPE_TEXTURE_3D: + return SVGA3D_RESOURCE_TEXTURE3D; + default: + assert(!"Unexpected texture target"); + return SVGA3D_RESOURCE_TEXTURE2D; + } +} #endif |