[Mesa-dev] [PATCH 4/9] anv: Added support for non-dynamic sample locations on Gen8+
Eleni Maria Stea
estea at igalia.com
Wed Mar 13 13:43:37 UTC 2019
On Wed, 13 Mar 2019 08:16:10 -0500
Jason Ekstrand <jason at jlekstrand.net> wrote:
> On Mon, Mar 11, 2019 at 10:05 AM Eleni Maria Stea <estea at igalia.com>
> wrote:
>
> > Allowing the user to set custom sample locations non-dynamically, by
> > filling the extension structs and chaining them to the pipeline
> > structs according to the Vulkan specification section [26.5. Custom
> > Sample Locations]
[...]
> > +void
> > +anv_calc_sample_locations(struct anv_sample *samples,
> > + uint32_t num_samples,
> > + const VkSampleLocationsInfoEXT *info)
> > +{
> > + int i;
> > +
> > + for(i = 0; i < num_samples; i++) {
> > + float dx, dy;
> > +
> > + /* this is because the grid is 1x1, in case that
> > + * we support different grid sizes in the future
> > + * this must be changed.
> > + */
> > + samples[i].offs_x = info->pSampleLocations[i].x;
> > + samples[i].offs_y = info->pSampleLocations[i].y;
> > +
> > + /* distance from the center */
> > + dx = samples[i].offs_x - 0.5;
> > + dy = samples[i].offs_y - 0.5;
> > +
> > + samples[i].radius = dx * dx + dy * dy;
> > + }
> > +
> > + qsort(samples, num_samples, sizeof *samples, compare_samples);
> >
>
> Are we allowed to re-order the samples like this? The spec says:
>
> The sample location for sample i at the pixel grid location (x,y) is
> taken from pSampleLocations[(x + y * sampleLocationGridSize.width) *
> sampleLocationsPerPixel + i]
>
> Which leads me to think that they expect the ordering of samples to be
> respected. Yes, I know the HW docs say we're supposed to order them
> from nearest to furthest. However, AFAIK, that's only so we get nice
> centroids and I don't know that it's actually required.
>
> --Jason
I wasn't sure about this to be honest. I could remove the qsort and
explain why we decided to ignore the PRM in a comment for the case that
someone decides to put this back in the future.
Thanks a lot for reviewing the series, BTW. I am working on the
changes for all patches.
Eleni
More information about the mesa-dev
mailing list