Skip to content
Snippets Groups Projects
  1. Jan 12, 2022
    • Eric Engestrom's avatar
      VERSION: bump for 21.3.4 · bfe18835
      Eric Engestrom authored
      mesa-21.3.4
      bfe18835
    • Eric Engestrom's avatar
      docs: add release notes for 21.3.4 · e03911b2
      Eric Engestrom authored
      e03911b2
    • Ian Romanick's avatar
      i965: Disable EXT_texture_integer on Gfx4 and Gfx5 · 597766f0
      Ian Romanick authored and Eric Engestrom's avatar Eric Engestrom committed
      st_init_extensions (src/mesa/state_tracker/st_extensions.c) already
      enforces the GLSL 1.30 or EXT_gpu_shader4 requirement, so Crocus will
      already behave this way on this hardware.
      
      The EXT_texture_integer spec says:
      
          NV_gpu_program4 or EXT_gpu_shader4 is required.
      
      Without one of these extensions or GLSL 1.30, it is impossible to read
      integer values from a texture.  The spec also says:
      
          This extension does not enforce type consistency for texture
          accesses or between fragment shaders and the corresponding
          framebuffer attachments.  The results of a texture lookup from an
          integer texture are undefined:
      
            * for fixed-function fragment processing, or
      
            * for shader texture accesses expecting floating-point return
              values.
      
          The color components used for per-fragment operations and written
          into a color buffer are undefined:
      
            * for fixed-function fragment processing with an integer color
              buffer,
      
            * for fragment shaders that write floating-point color components
              to an integer color buffer, or
      
            * for fragment shaders that write integer color components to a
              color buffer with floating point or normalized integer
              components.
      
      So it's really a soft requirement, but also kind of rude to expose the
      extension without a way to use it properly.
      
      Closes: #4497
      CC: mesa-stable
      597766f0
    • Roman Stratiienko's avatar
      v3dv: Hotfix: Rename remaining V3DV_HAS_SURFACE->V3DV_USE_WSI_PLATFORM · 89ed84a0
      Roman Stratiienko authored and Eric Engestrom's avatar Eric Engestrom committed
      
      This was somehow missed by me and during review.
      
      Fixes fcfc4ddf: ("v3dv: Fix V3DV_HAS_SURFACE preprocessor condition")
      
      Signed-off-by: default avatarRoman Stratiienko <roman.o.stratiienko@globallogic.com>
      Reviewed-by: default avatarIago Toral Quiroga <itoral@igalia.com>
      Part-of: <mesa/mesa!14190>
      (cherry picked from commit 2cbbfd23)
      89ed84a0
    • Pierre-Eric Pelloux-Prayer's avatar
      radeonsi/gfx10: fix si_texture_get_offset for mipmapped tex · 2435a887
      Pierre-Eric Pelloux-Prayer authored and Eric Engestrom's avatar Eric Engestrom committed
      Pitch can be different per-level so adjust stride and offset.
      
      Closes: mesa/mesa#5792
      
      
      Reviewed-by: default avatarMarek Olšák <marek.olsak@amd.com>
      Part-of: <mesa/mesa!14454>
      (cherry picked from commit 2f8982df)
      2435a887
    • Mike Blumenkrantz's avatar
      zink: use device-local heap for sparse backing allocations · a0ed1827
      Mike Blumenkrantz authored and Eric Engestrom's avatar Eric Engestrom committed
      
      backing allocations are real allocations, so they shouldn't be initialized
      as sparse containers
      
      Fixes: 40fdb321 ("zink: add a suballocator")
      
      Reviewed-by: default avatarHoe Hao Cheng <haochengho12907@gmail.com>
      Part-of: <mesa/mesa!14394>
      (cherry picked from commit b6499dff)
      a0ed1827
    • Lionel Landwerlin's avatar
      intel/dev: fixup chv workaround · 33461292
      Lionel Landwerlin authored and Eric Engestrom's avatar Eric Engestrom committed
      
      We're using the wrong helper to get the subslice total count.
      
      Signed-off-by: default avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Fixes: c24ba6ce ("intel/dev: Handle CHV CS thread weirdness in get_device_info_from_fd")
      Reviewed-by: default avatarTapani Pälli <tapani.palli@intel.com>
      Part-of: <mesa/mesa!14492>
      (cherry picked from commit d6c0d167)
      33461292
    • Mike Blumenkrantz's avatar
      zink: add extra synchronization for buffer descriptor binds · 24a31011
      Mike Blumenkrantz authored and Eric Engestrom's avatar Eric Engestrom committed
      
      "most" times it isn't necessary to insert any pipeline barriers when binding
      descriptors, as GL requires explicit barrier usage which comes through a different
      codepath
      
      the exception here is when the following scenario occurs:
      * have buffer A
      * buffer_subdata is called on A
      * discard path is taken || A is not host-visible
      * stream uploader is used for host write
      * CmdCopyBuffer is used to copy the data back to A
      buffer A now has a pending TRANSFER write that must complete before the buffer is
      used in a shader, so synchronization is required any time TRANSFER usage is detected
      in a bind
      
      there's also going to be more exceptions going forward as more internal usage is added,
      so just remove the whole fake-barrier mechanism since it'll become more problematic
      going forward
      
      Cc: 21.3 mesa-stable
      
      Reviewed-by: default avatarHoe Hao Cheng <haochengho12907@gmail.com>
      Part-of: <mesa/mesa!14496>
      (cherry picked from commit 3e5f4ceb)
      24a31011
    • Mike Blumenkrantz's avatar
      zink: always unset vertex shader variant key data when changing last vertex stage · bed4968a
      Mike Blumenkrantz authored and Eric Engestrom's avatar Eric Engestrom committed
      
      ensure that vertex key data is always zeroed when changing last stage since it will
      be updated before draw anyway and can only cause problems if left alone here
      
      fixes the following caselist:
      dEQP-GLES31.functional.shaders.builtin_constants.tessellation_shader.max_tess_evaluation_texture_image_units
      dEQP-GLES31.functional.tessellation_geometry_interaction.feedback.tessellation_output_quads_geometry_output_points
      dEQP-GLES31.functional.ubo.random.all_per_block_buffers.25
      
      cc: mesa-stable
      
      Reviewed-by: default avatarHoe Hao Cheng <haochengho12907@gmail.com>
      Part-of: <mesa/mesa!14482>
      (cherry picked from commit d15ff96d)
      bed4968a
    • Daniel Schürmann's avatar
      aco: validate VOP3P opsel correctly · 71cd312c
      Daniel Schürmann authored and Eric Engestrom's avatar Eric Engestrom committed
      
      Before RA, subdword operands must use .xx
      After RA, opsel can either be .xx or .yy
      
      Cc: mesa-stable
      Reviewed-by: default avatarRhys Perry <pendingchaos02@gmail.com>
      Part-of: <mesa/mesa!14472>
      (cherry picked from commit 4e2b624c)
      71cd312c
    • Pierre-Eric Pelloux-Prayer's avatar
      vbo/dlist: add vertices to incomplete primitives · f0595be9
      Pierre-Eric Pelloux-Prayer authored and Eric Engestrom's avatar Eric Engestrom committed
      If a primitive is added with missing vertices, this will shift all
      the vertices and produce incorrect rendering.
      
      In issue #5786 the app uses GL_LINE_STRIPS with a single vertex.
      
      Adding extra vertices can make the initial estimation for the index
      buffer size incorrect, so this buffer can now be growed if needed.
      
      Fixes: ac3d4c76 ("vbo/dlist: convert LINE_STRIPS to LINES")
      Closes: mesa/mesa#5786
      
      
      Acked-by: default avatarMarek Olšák <marek.olsak@amd.com>
      Part-of: <mesa/mesa!14476>
      (cherry picked from commit dcbf2423)
      f0595be9
    • Tapani Pälli's avatar
      mesa: free vbo_save_vertex_list store prims · 4637a3bc
      Tapani Pälli authored and Eric Engestrom's avatar Eric Engestrom committed
      
      Fixes a leak:
        ==47470== 60 bytes in 1 blocks are definitely lost in loss record 1,790 of 1,904
        ==47470==    at 0x484186F: malloc (vg_replace_malloc.c:381)
        ==47470==    by 0x58EBA6A: compile_vertex_list (vbo_save_api.c:535)
        ==47470==    by 0x58EDABF: wrap_buffers (vbo_save_api.c:1021)
        ==47470==    by 0x58EDF97: upgrade_vertex (vbo_save_api.c:1134)
        ==47470==    by 0x58EE52F: fixup_vertex (vbo_save_api.c:1251)
        ==47470==    by 0x58EFE9E: _save_Normal3f (vbo_attrib_tmp.h:315)
      
      Fixes: 69615d92 ("vbo/dlist: realloc prims array instead of free/malloc")
      Signed-off-by: default avatarTapani Pälli <tapani.palli@intel.com>
      Reviewed-by: default avatarPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
      Part-of: <mesa/mesa!14474>
      (cherry picked from commit a5bc8c4b)
      4637a3bc
    • Tapani Pälli's avatar
      mesa: free idalloc storage for display lists · 50c247df
      Tapani Pälli authored and Eric Engestrom's avatar Eric Engestrom committed
      
      Fixes a leak:
        ==46154== 48 bytes in 1 blocks are definitely lost in loss record 1,571 of 1,905
        ==46154==    at 0x48466AF: realloc (vg_replace_malloc.c:1437)
        ==46154==    by 0x5FC98EC: util_idalloc_resize (u_idalloc.c:43)
        ==46154==    by 0x5FC9C16: util_idalloc_alloc_range (u_idalloc.c:125)
        ==46154==    by 0x56FDB9F: _mesa_EndList (dlist.c:13681)
      
      Fixes: b703d7c1 ("dlist: store all dlist in a continuous memory block")
      Signed-off-by: default avatarTapani Pälli <tapani.palli@intel.com>
      Reviewed-by: default avatarPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
      Part-of: <mesa/mesa!14474>
      (cherry picked from commit 6e9cd801)
      50c247df
    • Emma Anholt's avatar
      nir_to_tgsi: Fix a bug in TXP detection after backend lowering. · c3a733dd
      Emma Anholt authored and Eric Engestrom's avatar Eric Engestrom committed
      
      TGSI reserves 2 components for the coord in the first operand vector, even
      for 1D.  Fixes r600 failure with shadow1d.
      
      Fixes: 390a3fcd ("nir_to_tgsi: Add support for TXP.")
      Reviewed-by: default avatarMatt Turner <mattst88@gmail.com>
      Part-of: <mesa/mesa!14322>
      (cherry picked from commit 3563ae4b)
      c3a733dd
    • Alyssa Rosenzweig's avatar
      lima,panfrost: Correct pixel vs block mismatches · 8c01a6de
      Alyssa Rosenzweig authored and Eric Engestrom's avatar Eric Engestrom committed
      
      Different parts of our codebase disagree on whether spatial
      coordinates/dimensions are given in pixels or blocks, which differ by a
      constant factor for block-compressed formats. This disagreement
      manifests as incorrect results accessing block-compressed formats.
      
      To resolve this, define the public tiling routines to take their
      coordinates in pixels, and align the relevant code in Panfrost
      accordingly.
      
      Fixes rendering glitches in Factorio, as well as a pile of piglits on
      Panfrost. It should also fix glTexSubImage() with ETC1 on Lima, but
      there are no tests for this in dEQP/Piglit.
      
      Signed-off-by: default avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Reviewed-by: Emma Anholt's avatarEmma Anholt <emma@anholt.net>
      Tested-by: Vasily Khoruzhick <anarsoul@gmail.com> [dEQP/Lima]
      Tested-by: Erico Nunes <nunes.erico@gmail.com> [Piglit/Lima]
      Reported-by: default avatarIcecream95 <ixn@disroot.org>
      Closes: #5560
      Cc: mesa-stable
      Part-of: <mesa/mesa!14370>
      (cherry picked from commit b920ace4)
      8c01a6de
    • Alyssa Rosenzweig's avatar
      gallium/util: Add pixel->blocks box helper · 0d427406
      Alyssa Rosenzweig authored and Eric Engestrom's avatar Eric Engestrom committed
      
      There is a lot of unit confusion in Gallium due to pixels versus blocks
      matching only with uncompressed textures. Add a helper to do a common
      pixels->blocks unit conversion required in multiple drivers.
      
      v2: Rename dst->blocks, src->pixels to avoid confusion about the units
      to casual readers (Mike).
      
      Note to mesa-stable maintainers: this is marked as Cc: mesa-stable so
      the next patch (a set of bug fixes for Lima and Panfrost) can be
      backported. It's not a bug fix in its own right, of course.
      
      Signed-off-by: default avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Reviewed-by: Emma Anholt <emma@anholt.net> [v1]
      Cc: mesa-stable
      Part-of: <mesa/mesa!14370>
      (cherry picked from commit 26c533f1)
      0d427406
    • Rhys Perry's avatar
      aco: remove pack_half_2x16(a, 0) optimization · a324d79e
      Rhys Perry authored and Eric Engestrom's avatar Eric Engestrom committed
      
      This makes the compiler less predictable and should only have a very small
      effect on performance.
      
      fossil-db (Vega):
      Totals from 2410 (1.79% of 134756) affected shaders:
      CodeSize: 6911568 -> 6942840 (+0.45%)
      
      Fixes Horizon Zero Dawn artifacts.
      
      If a shader has:
         a = pack_half_2x16(a, 0) //rtne
         store(pack_half_2x16(0, b) | a) //rtne
         a = unpack_2x16(a).x
      It will become:
         store(pack_half_2x16(a, b)) //rtz
         a = unpack_2x16(pack_half_2x16(a, 0)).x //rtne
      
      So a later shader with "unpack_2x16(load()).x" will use "a" rounded to
      zero, while the previous shader will use "a" rounded to the nearest even.
      
      Signed-off-by: default avatarRhys Perry <pendingchaos02@gmail.com>
      Reviewed-by: default avatarDaniel Schürmann <daniel@schuermann.dev>
      Fixes: 2f125908 ("radv,aco: lower_pack_half_2x16")
      Part-of: <mesa/mesa!14475>
      (cherry picked from commit 60c71183)
      a324d79e
    • Lucas Stach's avatar
      etnaviv: drm: properly handle reviving BOs via a lookup · eec8afec
      Lucas Stach authored and Eric Engestrom's avatar Eric Engestrom committed
      
      If a BO is removed from a cache bucket list via a lookup, we must
      handle it in the same way as if a allocation from the cache happened:
      tell valgrind that the buffer is active again and take a reference
      to the etna_device, which the BO had given up while being in the
      cache.
      
      Cc: mesa-stable
      Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Tested-by: default avatarGuido Günther <agx@sigxcpu.org>
      Reviewed-by: default avatarChristian Gmeiner <christian.gmeiner@gmail.com>
      Part-of: <mesa/mesa!14159>
      (cherry picked from commit 1b1f8592)
      eec8afec
    • Lucas Stach's avatar
      etnaviv: drm: fix size limit in etna_cmd_stream_realloc · d33e79e5
      Lucas Stach authored and Eric Engestrom's avatar Eric Engestrom committed
      
      The intended limit for command stream size is 64KB, as this is what old
      kernels can reliably do and what allows for maximum number of queued
      streams on newer kernels. However, due to unit confusion with the size
      member, which is in dwords, the submitted streams could grow up to
      ~128KB. Fix this by using the proper limit in dwords.
      
      Flushing due to some limits being exceeded is not an issue, but is
      expected with certain workloads, so lower the severity of the message
      being emitted in this case to debug level.
      
      Cc: mesa-stable
      Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Reviewed-by: default avatarChristian Gmeiner <christian.gmeiner@gmail.com>
      Part-of: <mesa/mesa!14425>
      (cherry picked from commit ccfd5054)
      d33e79e5
    • Danylo Piliaiev's avatar
      tu: fix workaround for depth bounds test without depth test · 4781087c
      Danylo Piliaiev authored and Eric Engestrom's avatar Eric Engestrom committed
      
      Fixes: bb4db22f
      
      ("turnip: apply workaround for depth bounds test without depth test")
      
      Signed-off-by: default avatarDanylo Piliaiev <dpiliaiev@igalia.com>
      Part-of: <mesa/mesa!14390>
      (cherry picked from commit fe9c9ec8)
      4781087c
    • Lionel Landwerlin's avatar
      anv: limit compiler valid color outputs using NIR variables · d987419d
      Lionel Landwerlin authored and Eric Engestrom's avatar Eric Engestrom committed
      
      This fixes a test from the vkd3d-proton test_dual_source_blending_dxbc
      test which asserts in the backend with :
      
         brw_fs_visitor.cpp:716: void fs_visitor::emit_fb_writes(): Assertion `!prog_data->dual_src_blend || key->nr_color_regions == 1' failed.
      
      This is because there is 2 color attachments provided by the
      renderpass so we initially set nr_color_regions = 2. But once we've
      parsed the shader, we can see it's only using one output (with dual
      source color blending).
      
      This change looks at the output variables to update the valid output
      variables.
      
      Signed-off-by: default avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Reviewed-by: default avatarTapani Pälli <tapani.palli@intel.com>
      Cc: mesa-stable
      Part-of: <mesa/mesa!14417>
      (cherry picked from commit 07bc6b7e)
      d987419d
    • Tapani Pälli's avatar
      iris: unref syncobjs and free r/w dependencies array for slab entries · a332907b
      Tapani Pälli authored and Eric Engestrom's avatar Eric Engestrom committed
      
      Fixes memory leak with dependencies array:
      
        ==5224== 104 (96 direct, 8 indirect) bytes in 3 blocks are definitely lost in loss record 1,954 of 2,035
        ==5224==    at 0x484178A: malloc (vg_replace_malloc.c:380)
        ==5224==    by 0x484670B: realloc (vg_replace_malloc.c:1437)
        ==5224==    by 0x14DBAB9B: update_bo_syncobjs (iris_batch.c:819)
        ==5224==    by 0x14DBADB8: update_batch_syncobjs (iris_batch.c:898)
        ==5224==    by 0x14DBB3D5: _iris_batch_flush (iris_batch.c:1031)
        ==5224==    by 0x14DB77D0: iris_transfer_map (iris_resource.c:2348)
        ==5224==    by 0x157786FD: u_transfer_helper_transfer_map (u_transfer_helper.c:243)
        ==5224==    by 0x14C479E7: tc_buffer_map (u_threaded_context.c:2252)
        ==5224==    by 0x1434F3F8: pipe_buffer_map_range (u_inlines.h:393)
        ==5224==    by 0x1435094A: _mesa_bufferobj_map_range (bufferobj.c:491)
        ==5224==    by 0x143586D9: map_buffer_range (bufferobj.c:3737)
        ==5224==    by 0x14358DA3: _mesa_MapBuffer (bufferobj.c:3947)
      
        ==5224== 240 (192 direct, 48 indirect) bytes in 6 blocks are definitely lost in loss record 1,984 of 2,035
        ==5224==    at 0x484178A: malloc (vg_replace_malloc.c:380)
        ==5224==    by 0x484670B: realloc (vg_replace_malloc.c:1437)
        ==5224==    by 0x14DBAB9B: update_bo_syncobjs (iris_batch.c:819)
        ==5224==    by 0x14DBADB8: update_batch_syncobjs (iris_batch.c:898)
        ==5224==    by 0x14DBB3D5: _iris_batch_flush (iris_batch.c:1031)
        ==5224==    by 0x14FF72CC: iris_get_query_result (iris_query.c:631)
        ==5224==    by 0x14C4396A: tc_get_query_result (u_threaded_context.c:880)
        ==5224==    by 0x1458F4F7: get_query_result (st_cb_queryobj.c:273)
        ==5224==    by 0x1458F7EB: st_WaitQuery (st_cb_queryobj.c:352)
        ==5224==    by 0x144EFF66: get_query_object (queryobj.c:742)
        ==5224==    by 0x144F01AE: _mesa_GetQueryObjectuiv (queryobj.c:811)
      
      And leak with syncobjs:
      
        ==13644== 8 bytes in 1 blocks are definitely lost in loss record 1 of 1,846
        ==13644==    at 0x484186F: malloc (vg_replace_malloc.c:381)
        ==13644==    by 0x639789B: iris_create_syncobj (iris_fence.c:69)
        ==13644==    by 0x63B213A: iris_batch_reset (iris_batch.c:512)
        ==13644==    by 0x63B3637: _iris_batch_flush (iris_batch.c:1056)
        ==13644==    by 0x65EF2BC: iris_get_query_result (iris_query.c:631)
        ==13644==    by 0x623B970: tc_get_query_result (u_threaded_context.c:880)
        ==13644==    by 0x5B874F7: get_query_result (st_cb_queryobj.c:273)
        ==13644==    by 0x5B877EB: st_WaitQuery (st_cb_queryobj.c:352)
        ==13644==    by 0x5AE7F66: get_query_object (queryobj.c:742)
        ==13644==    by 0x5AE8150: _mesa_GetQueryObjectiv (queryobj.c:801)
      
      Fixes: ce2e2296 ("iris: Suballocate BO using the Gallium pb_slab mechanism")
      Signed-off-by: default avatarTapani Pälli <tapani.palli@intel.com>
      Reviewed-by: default avatarIan Romanick <ian.d.romanick@intel.com>
      Part-of: <mesa/mesa!14387>
      (cherry picked from commit b8f0459d)
      a332907b
    • Yiwei Zhang's avatar
      venus: subtract appended header size in vn_CreatePipelineCache · 0db1699e
      Yiwei Zhang authored and Eric Engestrom's avatar Eric Engestrom committed
      
      Use header->header_size to offset cache data as well in case the header
      struct extends on a newer driver but the cache data was appended with
      an old header.
      
      Fixes: 723f0bf7 ("venus: initial support for module and pipelines")
      
      Signed-off-by: default avatarYiwei Zhang <zzyiwei@chromium.org>
      Reviewed-by: default avatarChia-I Wu <olvaffe@gmail.com>
      Part-of: <mesa/mesa!14463>
      (cherry picked from commit 48712b8c)
      0db1699e
    • Lionel Landwerlin's avatar
      anv: don't leave anv_batch fields undefined · 886b86f6
      Lionel Landwerlin authored and Eric Engestrom's avatar Eric Engestrom committed
      
      Because the extend_cb vfunc is not initialized, there is a risk that
      the emission code calls into a random pointer.
      
      Signed-off-by: default avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Cc: mesa-stable
      Reviewed-by: default avatarRohan Garg <rohan.garg@intel.com>
      Part-of: <mesa/mesa!14418>
      (cherry picked from commit 1d40d53e)
      886b86f6
    • Connor Abbott's avatar
      ir3: Bump type mismatch penalty to 3 · b57693c5
      Connor Abbott authored and Eric Engestrom's avatar Eric Engestrom committed
      After some experimentation with computerator, it seems on a618 that
      writing a full register and then reading half of it as a half register
      requires a delay of 6, the same as the delay for cat5/cat6 sources. The
      other direction only has a delay of 5, but just bump it unconditionally
      out of an abundance of caution.
      
      Fixes: 890de1a4 ("ir3/delay: Fix full->half and half->full delay")
      Part-of: <mesa/mesa!14246>
      (cherry picked from commit 603791bd)
      b57693c5
    • Connor Abbott's avatar
      ir3/ra: Fix logic bug in compress_regs_left · d761347e
      Connor Abbott authored and Eric Engestrom's avatar Eric Engestrom committed
      If we're allocating a source then we force is_killed to false, not to
      true. Fixes a regression in
      dEQP-GLES31.functional.synchronization.in_invocation.image_atomic_write_read
      later.
      
      Fixes: 0ffcb19b ("ir3: Rewrite register allocation")
      Part-of: <mesa/mesa!14246>
      (cherry picked from commit d371d807)
      d761347e
    • Rohan Garg's avatar
      intel/fs: OpImageQueryLod does not support arrayed images as an operand · 7241ec2e
      Rohan Garg authored and Eric Engestrom's avatar Eric Engestrom committed
      
      When we lower SPIR-V to NIR for textures in vtn_handle_texture, we only
      bump the number of coordinate components when the op is not a lod query.
      Update the assert to take this into account.
      
      This fixes:
        - dEQP-VK.robustness.robustness2.bind.template.r32f.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.r32f.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.r32i.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.r32i.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.r32ui.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.r32ui.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.rg32f.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.rg32f.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.rg32i.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.rg32i.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.rg32ui.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.rg32ui.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.rgba32f.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.rgba32f.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.rgba32i.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.rgba32i.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.rgba32ui.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.bind.template.rgba32ui.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.r32f.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.r32f.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.r32i.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.r32i.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.r32ui.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.r32ui.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.rg32f.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.rg32f.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.rg32i.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.rg32i.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.rg32ui.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.rg32ui.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.rgba32f.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.rgba32f.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.rgba32i.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.rgba32i.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.rgba32ui.dontunroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
        - dEQP-VK.robustness.robustness2.push.notemplate.rgba32ui.unroll.nonvolatile.sampled_image.no_fmt_qual.null_descriptor.samples_1.cube_array.frag
      
      Fixes: 231337a1 ("intel/fs/xehp: Assert that the compiler is sending all 3 coords for cubemaps.")
      Signed-off-by: default avatarRohan Garg <rohan.garg@intel.com>
      Reviewed-by: default avatarFrancisco Jerez <currojerez@riseup.net>
      Reviewed-by: Sagar Ghuge's avatarSagar Ghuge <sagar.ghuge@intel.com>
      Reviewed-by: default avatarJason Ekstrand <jason@jlekstrand.net>
      Part-of: <mesa/mesa!13925>
      (cherry picked from commit af131199)
      7241ec2e
    • Bas Nieuwenhuizen's avatar
      radv: Set optimal copy alignment to 1. · 2cd9d700
      Bas Nieuwenhuizen authored and Eric Engestrom's avatar Eric Engestrom committed
      I think we set it to 128 for no reason at all. The app is still
      required to align to the texel size.
      
      Note that we prefer 4 bytes for non-formatted buffer->buffer copy,
      but that isn't in scope for these properties according to the
      Vulkan spec.
      
      It also happens to help hide what looks like an application bug at
      this point with Baldurs Gate 3.
      
      Closes: mesa/mesa#5509
      
      
      Cc: mesa-stable
      Reviewed-by: default avatarSamuel Pitoiset <samuel.pitoiset@gmail.com>
      Part-of: <mesa/mesa!14415>
      (cherry picked from commit 63101914)
      2cd9d700
    • Mike Blumenkrantz's avatar
      radv: fix xfb query copy param ordering · 08bea100
      Mike Blumenkrantz authored and Eric Engestrom's avatar Eric Engestrom committed
      
      Fixes: afff9dd0 ("radv: Use correct buffer size for query pool result copies.")
      
      Reviewed-by: default avatarSamuel Pitoiset <samuel.pitoiset@gmail.com>
      Reviewed-by: default avatarBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
      Part-of: <mesa/mesa!14422>
      (cherry picked from commit 05a5e5a2)
      08bea100
    • Pierre-Eric Pelloux-Prayer's avatar
      vbo/dlist: fix loopback crash · ad5fe81c
      Pierre-Eric Pelloux-Prayer authored and Eric Engestrom's avatar Eric Engestrom committed
      The original code incorrectly adjusted only when Loopback
      was false, while primitives' start value is actually
      modified unconditionnally.
      
      Fixes: 32535942 ("vbo/dlist: rework buffer sizes")
      Closes: mesa/mesa#5754
      
      
      Acked-by: default avatarMarek Olšák <marek.olsak@amd.com>
      Part-of: <mesa/mesa!14243>
      (cherry picked from commit 7a1d3d3a)
      ad5fe81c
    • Pierre-Eric Pelloux-Prayer's avatar
      radeonsi/gfx8: use the proper dcc clear size · 72a680be
      Pierre-Eric Pelloux-Prayer authored and Eric Engestrom's avatar Eric Engestrom committed
      dcc_fast_clear_size is assigned using addrlib's dccFastClearSize, which
      is computed using the whole surface size (including layers) so we don't
      need to multiply dcc_fast_clear_size by num_layers.
      
      Closes: mesa/mesa#4530
      
      
      Cc: mesa-stable
      Reviewed-by: default avatarMarek Olšák <marek.olsak@amd.com>
      Part-of: <mesa/mesa!14409>
      (cherry picked from commit d84e0096)
      72a680be
    • Lucas Stach's avatar
      etnaviv: initialize vertex attributes on context reset · b1d0e4d0
      Lucas Stach authored and Eric Engestrom's avatar Eric Engestrom committed
      
      It seems that at least some GC400 come out of reset with random vertex
      attributes enabled and also don't disable them on the write to the first
      config register as normal. Enabling all attributes seems to provide the
      GPU with the required edge to actually disable the unused attributes on
      the next draw.
      
      Cc: mesa-stable
      Reported-by: Steven Walter
      Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Reviewed-by: default avatarChristian Gmeiner <christian.gmeiner@gmail.com>
      Part-of: <mesa/mesa!14285>
      (cherry picked from commit c1f8bc67)
      b1d0e4d0
    • Emma Anholt's avatar
      r300: Fix omod failing to increase the number of channels stored. · 9195ddff
      Emma Anholt authored and Eric Engestrom's avatar Eric Engestrom committed
      
      In dEQP-GLES2.functional.shaders.operator.geometric.reflect.highp_vec2_fragment
      and friends this pass would turn:
      
        0: DP3 temp[1].x, input[1].yx0_, input[0].wy0_;
        1: MUL temp[2].xy, temp[1].xx__, const[0].xx__;
      
      into
      
        0: DP3 temp[2].x * 2, input[1].yx0_, input[0].wy0_;
        1: MUL temp[3].xy, temp[2].xy__, input[1].yx__;
      
      Note the attempt to use .y of temp[2].  Just bail when we more dst
      channels than src channels, since the rewrite can't generate more channels
      for us.  Fixes this subset of tests (which I hadn't included in the xfails
      until now since results hadn't quite been stable).
      
      Cc: mesa-stable
      Reviewed-by: default avatarMarek Olšák <marek.olsak@amd.com>
      Tested-by: default avatarFilip Gawin <filip.gawin@zoho.com>
      Part-of: <mesa/mesa!14405>
      (cherry picked from commit 105b48c8)
      9195ddff
    • xantares's avatar
      zink: fix -Warray-bounds warning · f78a3094
      xantares authored and Eric Engestrom's avatar Eric Engestrom committed
      
      It would seems msvc and mingw dont pack across disparate types so zink_bind_rasterizer_state is too big for int32
      
      string.h:202:10: warning: ‘__builtin___memcpy_chk’ forming offset [4, 7] is out of the bounds [0, 4] of object ‘rast_bits’ with type ‘uint32_t’ {aka ‘unsigned int’} [-Warray-bounds]
        202 |   return __builtin___memcpy_chk(__dst, __src, __n, __mingw_bos(__dst, 0));
            |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      ../src/gallium/drivers/zink/zink_state.c: In function ‘zink_bind_rasterizer_state’:
      ../src/gallium/drivers/zink/zink_state.c:586:16: note: ‘rast_bits’ declared here
      
      Fixes: 9c5a2ab6
      Acked-By: default avatarMike Blumenkrantz <michael.blumenkrantz@gmail.com>
      Part-of: <mesa/mesa!12609>
      (cherry picked from commit 4ff57e5a)
      f78a3094
    • Emma Anholt's avatar
      i915g: Turn off FP16 in the vertex shaders. · af943229
      Emma Anholt authored and Eric Engestrom's avatar Eric Engestrom committed
      This ended up being turned on in gallivm, but since we use nir_to_tgsi on
      the VS and TGSI doesn't have FP16, we can't let that happen.
      
      Fixes: f814a244 ("llvmpipe: enable FP16 and update CL + traces piglit results.")
      Part-of: <mesa/mesa!14403>
      (cherry picked from commit b9e8936b)
      af943229
    • Satadru Pramanik's avatar
      Fix compilation on armv7l with gcc 11.2.0 · d2d07f2b
      Satadru Pramanik authored and Eric Engestrom's avatar Eric Engestrom committed
      
      Cc: mesa-stable
      Reviewed-by: default avatarRob Clark <robdclark@chromium.org>
      Part-of: <mesa/mesa!12810>
      (cherry picked from commit d2780575)
      d2d07f2b
    • Timothy Arceri's avatar
      glsl/glcpp: make sure to expand new token after concatenation · 20e8f2e1
      Timothy Arceri authored and Eric Engestrom's avatar Eric Engestrom committed
      Previously the code was using a hack to change the token type from
      INDETIFIER -> OTHER in order to avoid getting in an infinite loop
      expanding the tokens. This worked ok until we got to a paste where
      the replacement parameters had already had their type changed
      to OTHER because the newly created paste token would then
      inherit the OTHER type and never get expanded inself.
      
      For example with the follow code:
      
         #define STEP_ONE() \
      	out_Color = vec4(0.0,1.0,0.0,1.0)
      
         #define GLUE(x,y) x ## _ ## y
         #define EVALUATE(x,y)  GLUE(x,y)
         #define STEP(stepname) EVALUATE(STEP, stepname)()
         #define PERFORM_RAYCASTING_STEP STEP(ONE)
      
      This would get all the way to expanding PERFORM_RAYCASTING_STEP to
      STEP_ONE() but because it was created via the paste `x ## _ ## y`
      it would never get any further.
      
      To fix this we remove the OTHER hack and instead just track if the
      token has already been handled via a bool value `explanding`.
      
      Closes: mesa/mesa#5724
      
      
      
      Fixes: 28842c23 ("glcpp: Implement token pasting for non-function-like macros")
      
      Acked-by: default avatarPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
      Reviewed-by: default avatarIan Romanick <ian.d.romanick@intel.com>
      Part-of: <mesa/mesa!14101>
      (cherry picked from commit d2711f9b)
      20e8f2e1
    • Pavel Ondračka's avatar
      r300: Remove broken optimization in rc_transform_KILL · 90e33100
      Pavel Ondračka authored and Eric Engestrom's avatar Eric Engestrom committed
      The logic was reversed so this was not only not working but it was
      also removing random instructions around. The special IF-KILP-ENDIF
      case this optimization was targeting is already transformed to
      KILL_IF in the TGSI, so just remove this altogether.
      
      This fixes piglit glsl-fs-discard-04
      v2: Update the comment as well
      
      Closes: mesa/mesa#343
      
      
      Signed-off-by: Pavel Ondračka's avatarPavel Ondračka <pavel.ondracka@gmail.com>
      Reviewed-by: default avatarFilip Gawin <filip.gawin@zoho.com>
      Reviewed-by: default avatarMarek Olšák <marek.olsak@amd.com>
      Reviewed-by: Emma Anholt's avatarEmma Anholt <emma@anholt.net>
      Cc: mesa-stable
      Part-of: <mesa/mesa!14378>
      (cherry picked from commit 96ad4f64)
      90e33100
    • Alyssa Rosenzweig's avatar
      pan/bi: Fix load_const of 1-bit booleans · 60596366
      Alyssa Rosenzweig authored and Eric Engestrom's avatar Eric Engestrom committed
      
      For historical reasons, we ingest 1-bit booleans in NIR but expand them
      to 16/32-bit booleans in the backend IR. We need to handle this case
      when loading boolean constants, extending from 1-bit to 16/32-bit as
      required. This issue is masked by effective constant folding for
      booleans, but is visible in a shader from Firefox WebRender.
      
      Fixes: 646e03c4 ("pan/bi: Temporarily switch back to 0/~0 bools")
      Signed-off-by: default avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Reported-by: Icecream95
      Closes: #5797
      Part-of: <mesa/mesa!14371>
      (cherry picked from commit 29d319c7)
      60596366
    • Boris Brezillon's avatar
      microsoft/compiler: Fix dxil_nir_create_bare_samplers() · a1c1a606
      Boris Brezillon authored and Eric Engestrom's avatar Eric Engestrom committed
      
      _mesa_hash_table_u64_search() returns the data directly, not an
      hash_entry object.
      
      Fixes: 46bc7cf6 ("microsoft/compiler: Rewrite sampler splitting pass to be smarter and handle derefs")
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
      Reviewed-by: Jesse Natalie's avatarJesse Natalie <jenatali@microsoft.com>
      (cherry picked from commit 83280b8e)
      Part-of: <mesa/mesa!14377>
      a1c1a606
Loading