Re: [Mesa-dev] [PATCH v3 2/2] anv: advertise 8 subpixel precision bits
On Fri, 2019-02-22 at 10:04 -0600, Jason Ekstrand wrote: > On Fri, Feb 22, 2019 at 9:58 AM Jason Ekstrand wrote: > > On Fri, Feb 22, 2019 at 9:57 AM Lionel Landwerlin > > wrote: > > > On 22/02/2019 15:51, Juan A. Suarez Romero 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) > > > > > > > v3: use _8Bit definition as value (Jason) > > > > > > > > > > > > > > CC: Jason Ekstrand > > > > > > > CC: Kenneth Graunke > > > > > > > Signed-off-by: Juan A. Suarez Romero > > > > > > > > > > > > > > > > > > Reviewed-by: Lionel Landwerlin > > > > Reviewed-by: Jason Ekstrand > > > > I just sent a patch which also sets the corresponding bit in 3DSTATE_CLIP on > gen8+. Feel free to squash it into this one before merging. The information > is redundant but we should be explicitly setting it both places. I think the > one in 3DSTATE_CLIP is for the viewport clip test that got added on gen8. > Squashed into this one, and CCed the series to @stable. Thank you both! J.A. > --Jason > > > > > > Cc: stable? > > > > Not a bad idea. > > --Jason > > > > > > > > > --- > > > > > > > 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..3d36bb773e1 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 = _8Bit; > > > > > > > > > > > > > > const struct brw_vue_prog_data *last_vue_prog_data = > > > > > > > anv_pipeline_get_last_vue_prog_data(pipeline); > > > > > > > > > > > > > > > > > > ___ > > > > > > mesa-dev mailing list > > > > > > mesa-dev@lists.freedesktop.org > > > > > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH v3 2/2] anv: advertise 8 subpixel precision bits
On Fri, Feb 22, 2019 at 9:58 AM Jason Ekstrand wrote: > On Fri, Feb 22, 2019 at 9:57 AM Lionel Landwerlin < > lionel.g.landwer...@intel.com> wrote: > >> On 22/02/2019 15:51, Juan A. Suarez Romero 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) >> > v3: use _8Bit definition as value (Jason) >> > >> > CC: Jason Ekstrand >> > CC: Kenneth Graunke >> > Signed-off-by: Juan A. Suarez Romero >> >> >> Reviewed-by: Lionel Landwerlin >> > > Reviewed-by: Jason Ekstrand > I just sent a patch which also sets the corresponding bit in 3DSTATE_CLIP on gen8+. Feel free to squash it into this one before merging. The information is redundant but we should be explicitly setting it both places. I think the one in 3DSTATE_CLIP is for the viewport clip test that got added on gen8. --Jason > > >> Cc: stable? >> > > Not a bad idea. > > --Jason > > >> >> > --- >> > 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..3d36bb773e1 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 = _8Bit; >> > >> > const struct brw_vue_prog_data *last_vue_prog_data = >> > anv_pipeline_get_last_vue_prog_data(pipeline); >> >> >> ___ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH v3 2/2] anv: advertise 8 subpixel precision bits
On Fri, Feb 22, 2019 at 9:57 AM Lionel Landwerlin < lionel.g.landwer...@intel.com> wrote: > On 22/02/2019 15:51, Juan A. Suarez Romero 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) > > v3: use _8Bit definition as value (Jason) > > > > CC: Jason Ekstrand > > CC: Kenneth Graunke > > Signed-off-by: Juan A. Suarez Romero > > > Reviewed-by: Lionel Landwerlin > Reviewed-by: Jason Ekstrand > Cc: stable? > Not a bad idea. --Jason > > > --- > > 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..3d36bb773e1 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 = _8Bit; > > > > const struct brw_vue_prog_data *last_vue_prog_data = > > anv_pipeline_get_last_vue_prog_data(pipeline); > > > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH v3 2/2] anv: advertise 8 subpixel precision bits
On 22/02/2019 15:51, Juan A. Suarez Romero 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) v3: use _8Bit definition as value (Jason) CC: Jason Ekstrand CC: Kenneth Graunke Signed-off-by: Juan A. Suarez Romero Reviewed-by: Lionel Landwerlin Cc: stable? --- 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..3d36bb773e1 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 = _8Bit; const struct brw_vue_prog_data *last_vue_prog_data = anv_pipeline_get_last_vue_prog_data(pipeline); ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH v3 2/2] 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) CC: Jason Ekstrand CC: Kenneth Graunke Signed-off-by: Juan A. Suarez Romero --- 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..3d36bb773e1 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 = _8Bit; 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 mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev