Re: [Mesa-dev] [PATCH v3 2/2] anv: advertise 8 subpixel precision bits

2019-02-22 Thread Juan A. Suarez Romero
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

2019-02-22 Thread Jason Ekstrand
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

2019-02-22 Thread Jason Ekstrand
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

2019-02-22 Thread Lionel Landwerlin

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

2019-02-22 Thread Juan A. Suarez Romero
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