From 38cd40faab8686023ac48e323014f951abf47098 Mon Sep 17 00:00:00 2001 From: Anuj Phogat Date: Tue, 23 Sep 2014 11:56:54 -0700 Subject: [PATCH] mesa: Add new variables in gl_context to store sample layout SampleMap{2,4,8}x variables are used in later patches to implement EXT_framebuffer_multisample_blit_scaled extension. V2: Use integer array instead of a string. Bump up the comment. V3: Use uint8_t type array. Signed-off-by: Anuj Phogat Reviewed-by: Jordan Justen --- src/mesa/main/mtypes.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) 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; -- 2.30.2