summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/svga/svga_surface.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/svga/svga_surface.h')
-rw-r--r--src/gallium/drivers/svga/svga_surface.h20
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