[Mesa-dev] [PATCH] isl/state: fix assert on raw buffer surface state minimum size

Jason Ekstrand jason at jlekstrand.net
Thu Feb 23 16:23:31 UTC 2017


On Feb 22, 2017 11:17 PM, "Samuel Iglesias Gonsálvez" <siglesias at igalia.com>
wrote:



On 22/02/17 17:32, Jason Ekstrand wrote:
> Seems reasonable  Are you sure this isn't somehow required on old
hardware?
>

This assert is inside if (gen >= 7) block. I have checked all gen7+
specs and they all say the same.

What I saw was that for PLANAR* surface formats, num_elements must be a
multiple of 4, which is what we were asserting before. However as we are
asserting the limits for raw surfaces, this doesn't apply here.


Sounds good to me

> Reviewed-by: Jason Ekstrand <jason at jlekstrand.net
> <mailto:jason at jlekstrand.net>>
>

Thanks!

Sam

> On Wed, Feb 22, 2017 at 3:39 AM, Samuel Iglesias Gonsálvez
> <siglesias at igalia.com <mailto:siglesias at igalia.com>> wrote:
>
>     From IVB PRM, SURFACE_STATE::Height:
>
>     "For typed buffer and structured buffer surfaces, the number of
>      entries in the buffer ranges from 1 to 2^27 . For raw buffer
>      surfaces, the number of entries in the buffer is the number of bytes
>      which can range from 1 to 2^30."
>
>     The minimum value is 1, according to the spec. The spec quote
>     was already added into the code by 028f6d8317f00.
>
>     Fixes crashing tests under:
>
>     dEQP-VK.robustness.buffer_access.*
>
>     Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com
>     <mailto:siglesias at igalia.com>>
>     Cc: jason at jlekstrand.net <mailto:jason at jlekstrand.net>
>     ---
>      src/intel/isl/isl_surface_state.c | 2 +-
>      1 file changed, 1 insertion(+), 1 deletion(-)
>
>     diff --git a/src/intel/isl/isl_surface_state.c
>     b/src/intel/isl/isl_surface_state.c
>     index 29ec289a5d..853bb11846 100644
>     --- a/src/intel/isl/isl_surface_state.c
>     +++ b/src/intel/isl/isl_surface_state.c
>     @@ -671,7 +671,7 @@ isl_genX(buffer_fill_state_s)(void *state,
>             */
>            if (info->format == ISL_FORMAT_RAW) {
>               assert(num_elements <= (1ull << 30));
>     -         assert((num_elements & 3) == 0);
>     +         assert(num_elements > 0);
>            } else {
>               assert(num_elements <= (1ull << 27));
>            }
>     --
>     2.11.0
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170223/6ebe83c6/attachment.html>


More information about the mesa-dev mailing list