anv: advertise 8 subpixel precision bits
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) v3: use _8Bit definition as value (Jason) v4: (by Jason) anv: Explicitly set 3DSTATE_CLIP::VertexSubPixelPrecisionSelect This field was added on gen8 even though there's an identically defined one in 3DSTATE_SF. CC: Jason Ekstrand <jason@jlekstrand.net> CC: Kenneth Graunke <kenneth@whitecape.org> CC: 18.3 19.0 <mesa-stable@lists.freedesktop.org> Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
3b423eeb2d
commit
4f917e6a61
|
@ -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,
|
||||
|
|
|
@ -464,6 +464,7 @@ emit_rs_state(struct anv_pipeline *pipeline,
|
|||
sf.TriangleStripListProvokingVertexSelect = 0;
|
||||
sf.LineStripListProvokingVertexSelect = 0;
|
||||
sf.TriangleFanProvokingVertexSelect = 1;
|
||||
sf.VertexSubPixelPrecisionSelect = _8Bit;
|
||||
|
||||
const struct brw_vue_prog_data *last_vue_prog_data =
|
||||
anv_pipeline_get_last_vue_prog_data(pipeline);
|
||||
|
@ -1077,6 +1078,10 @@ emit_3dstate_clip(struct anv_pipeline *pipeline,
|
|||
clip.APIMode = APIMODE_D3D,
|
||||
clip.ViewportXYClipTestEnable = true;
|
||||
|
||||
#if GEN_GEN >= 8
|
||||
clip.VertexSubPixelPrecisionSelect = _8Bit;
|
||||
#endif
|
||||
|
||||
clip.ClipMode = CLIPMODE_NORMAL;
|
||||
|
||||
clip.TriangleStripListProvokingVertexSelect = 0;
|
||||
|
|
Loading…
Reference in New Issue