[Mesa-dev] [PATCH V3 1/4] mesa: Add new variables in gl_context to store sample layout
Anuj Phogat
anuj.phogat at gmail.com
Tue Sep 30 11:19:57 PDT 2014
On Mon, Sep 29, 2014 at 7:16 PM, Jordan Justen <jljusten at gmail.com> wrote:
>
> 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?
>
Yes, that'll work.
> 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];
>
I'll make the changes and send out a V4.
> -Jordan
>
> > /** GL_ARB_shader_atomic_counters */
> > GLuint MaxAtomicBufferBindings;
> > GLuint MaxAtomicBufferSize;
> > --
> > 1.9.3
> >
More information about the mesa-dev
mailing list