[Mesa-dev] [PATCH v2] anv: advertise 8 subpixel precision bits

Jason Ekstrand jason at jlekstrand.net
Thu Feb 21 14:49:52 UTC 2019


On Thu, Feb 21, 2019 at 3:45 AM Juan A. Suarez Romero <jasuarez at igalia.com>
wrote:

> On one side, when emitting 3DSTATE_SF, VertexSubPixelPrecisionSelect is
> used to select between 8 bit subpixel precision (value 0) or 4 bit
> subpixel precision (value 1). As this value is not set, means it is
> taking the value 0, so 8 bit are used.
>
> On the other side, in the Vulkan CTS tests, if the reference rasterizer,
> which uses 8 bit precision, as it is used to check what should be the
> expected value for the tests, is changed to use 4 bit as ANV was
> advertising so far, some of the tests will fail.
>
> So it seems ANV is actually using 8 bits.
>
> v2: explicitly set 3DSTATE_SF::VertexSubPixelPrecisionSelect (Jason)
>
> CC: Jason Ekstrand <jason at jlekstrand.net>
> CC: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/intel/vulkan/anv_device.c    | 2 +-
>  src/intel/vulkan/genX_pipeline.c | 1 +
>  2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
> index 3120865466a..95224407318 100644
> --- a/src/intel/vulkan/anv_device.c
> +++ b/src/intel/vulkan/anv_device.c
> @@ -1095,7 +1095,7 @@ void anv_GetPhysicalDeviceProperties(
>           16 * devinfo->max_cs_threads,
>           16 * devinfo->max_cs_threads,
>        },
> -      .subPixelPrecisionBits                    = 4 /* FIXME */,
> +      .subPixelPrecisionBits                    = 8,
>        .subTexelPrecisionBits                    = 4 /* FIXME */,
>        .mipmapPrecisionBits                      = 4 /* FIXME */,
>        .maxDrawIndexedIndexValue                 = UINT32_MAX,
> diff --git a/src/intel/vulkan/genX_pipeline.c
> b/src/intel/vulkan/genX_pipeline.c
> index 6255e5d83c5..b06036a6fc7 100644
> --- a/src/intel/vulkan/genX_pipeline.c
> +++ b/src/intel/vulkan/genX_pipeline.c
> @@ -464,6 +464,7 @@ emit_rs_state(struct anv_pipeline *pipeline,
>     sf.TriangleStripListProvokingVertexSelect = 0;
>     sf.LineStripListProvokingVertexSelect = 0;
>     sf.TriangleFanProvokingVertexSelect = 1;
> +   sf.VertexSubPixelPrecisionSelect = 0;
>

Please use the _8bit #define.  It looks like you may have to modify the
gen7 XML (and possibly earlier if you don't mind) to add the enum values.


>
>     const struct brw_vue_prog_data *last_vue_prog_data =
>        anv_pipeline_get_last_vue_prog_data(pipeline);
> --
> 2.20.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190221/b0af7204/attachment-0001.html>


More information about the mesa-dev mailing list