summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/util/u_inlines.h
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-07-25 12:38:22 +0200
committerMarek Olšák <[email protected]>2012-08-15 19:20:57 +0200
commit825b45366d5308fd3e8e71c0c1943cb6ca8f69ea (patch)
treecc921b420803f4af43eca89212f4e1d1caaa4fd1 /src/gallium/auxiliary/util/u_inlines.h
parentdacf5dc9ac1a700b86e0dc385513afaff41e7aea (diff)
gallium/u_blitter: implement blitting multisample resources
It can blit only one sample at a time (it should be called in a loop).
Diffstat (limited to 'src/gallium/auxiliary/util/u_inlines.h')
-rw-r--r--src/gallium/auxiliary/util/u_inlines.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/gallium/auxiliary/util/u_inlines.h b/src/gallium/auxiliary/util/u_inlines.h
index 2d603e4ddf6..a1ece415f46 100644
--- a/src/gallium/auxiliary/util/u_inlines.h
+++ b/src/gallium/auxiliary/util/u_inlines.h
@@ -548,23 +548,37 @@ util_query_clear_result(union pipe_query_result *result, unsigned type)
/** Convert PIPE_TEXTURE_x to TGSI_TEXTURE_x */
static INLINE unsigned
-util_pipe_tex_to_tgsi_tex(enum pipe_texture_target pipe_tex_target)
+util_pipe_tex_to_tgsi_tex(enum pipe_texture_target pipe_tex_target,
+ unsigned nr_samples)
{
switch (pipe_tex_target) {
case PIPE_TEXTURE_1D:
+ assert(nr_samples <= 1);
return TGSI_TEXTURE_1D;
+
case PIPE_TEXTURE_2D:
- return TGSI_TEXTURE_2D;
+ return nr_samples > 1 ? TGSI_TEXTURE_2D_MSAA : TGSI_TEXTURE_2D;
+
case PIPE_TEXTURE_RECT:
+ assert(nr_samples <= 1);
return TGSI_TEXTURE_RECT;
+
case PIPE_TEXTURE_3D:
+ assert(nr_samples <= 1);
return TGSI_TEXTURE_3D;
+
case PIPE_TEXTURE_CUBE:
+ assert(nr_samples <= 1);
return TGSI_TEXTURE_CUBE;
+
case PIPE_TEXTURE_1D_ARRAY:
+ assert(nr_samples <= 1);
return TGSI_TEXTURE_1D_ARRAY;
+
case PIPE_TEXTURE_2D_ARRAY:
- return TGSI_TEXTURE_2D_ARRAY;
+ return nr_samples > 1 ? TGSI_TEXTURE_2D_ARRAY_MSAA :
+ TGSI_TEXTURE_2D_ARRAY;
+
default:
assert(0 && "unexpected texture target");
return TGSI_TEXTURE_UNKNOWN;