[Mesa-dev] [PATCH V3 1/4] mesa: Add new variables in gl_context to store sample layout
Jordan Justen
jljusten at gmail.com
Mon Sep 29 19:16:56 PDT 2014
On 2014-09-29 16:33:33, Anuj Phogat wrote:
> 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.
>
> Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
> ---
> 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 0d50be8..162dc44 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -3608,6 +3608,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.
> + */
> + unsigned *SampleMap2x;
> + unsigned *SampleMap4x;
> + unsigned *SampleMap8x;
Wouldn't uint8_t work given the 0-7 range?
Also, I thought we could include the bytes directly in the structure,
and let the driver write the bytes rather than setting a pointer to
the array.
uint8_t SampleMap2x[2];
uint8_t SampleMap4x[4];
uint8_t SampleMap8x[8];
-Jordan
> /** GL_ARB_shader_atomic_counters */
> GLuint MaxAtomicBufferBindings;
> GLuint MaxAtomicBufferSize;
> --
> 1.9.3
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: signature
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140929/5f3a6bb1/attachment.sig>
More information about the mesa-dev
mailing list