summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/main/mtypes.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index dd330eab729..5e9453b2fd7 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -3606,6 +3606,38 @@ struct gl_constants
GLint MaxDepthTextureSamples;
GLint MaxIntegerSamples;
+ /**
+ * GL_EXT_texture_multisample_blit_scaled implementation assumes that
+ * samples are laid out in a rectangular grid roughly corresponding to
+ * sample locations within a pixel. Below SampleMap{2,4,8}x variables
+ * are used to map indices of rectangular grid to sample numbers within
+ * a pixel. This mapping of indices to sample numbers must be initialized
+ * by the driver for the target hardware. For example, if we have the 8X
+ * MSAA sample number layout (sample positions) for XYZ hardware:
+ *
+ * sample indices layout sample number layout
+ * --------- ---------
+ * | 0 | 1 | | a | b |
+ * --------- ---------
+ * | 2 | 3 | | c | d |
+ * --------- ---------
+ * | 4 | 5 | | e | f |
+ * --------- ---------
+ * | 6 | 7 | | g | h |
+ * --------- ---------
+ *
+ * Where a,b,c,d,e,f,g,h are integers between [0-7].
+ *
+ * Then, initialize the SampleMap8x variable for XYZ hardware as shown
+ * below:
+ * SampleMap8x = {a, b, c, d, e, f, g, h};
+ *
+ * Follow the logic for other sample counts.
+ */
+ uint8_t SampleMap2x[2];
+ uint8_t SampleMap4x[4];
+ uint8_t SampleMap8x[8];
+
/** GL_ARB_shader_atomic_counters */
GLuint MaxAtomicBufferBindings;
GLuint MaxAtomicBufferSize;