On Thu, Feb 21, 2019 at 3:45 AM Juan A. Suarez Romero <[email protected]> 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 <[email protected]> > CC: Kenneth Graunke <[email protected]> > --- > 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 > >
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
