- Jan 12, 2022
-
-
Eric Engestrom authored
-
Eric Engestrom authored
-
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
-
This was somehow missed by me and during review. Fixes fcfc4ddf: ("v3dv: Fix V3DV_HAS_SURFACE preprocessor condition") Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <mesa/mesa!14190> (cherry picked from commit 2cbbfd23)
-
Pitch can be different per-level so adjust stride and offset. Closes: mesa/mesa#5792 Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!14454> (cherry picked from commit 2f8982df)
-
backing allocations are real allocations, so they shouldn't be initialized as sparse containers Fixes: 40fdb321 ("zink: add a suballocator") Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com> Part-of: <mesa/mesa!14394> (cherry picked from commit b6499dff)
-
We're using the wrong helper to get the subslice total count. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: c24ba6ce ("intel/dev: Handle CHV CS thread weirdness in get_device_info_from_fd") Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Part-of: <mesa/mesa!14492> (cherry picked from commit d6c0d167)
-
"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: Hoe Hao Cheng <haochengho12907@gmail.com> Part-of: <mesa/mesa!14496> (cherry picked from commit 3e5f4ceb)
-
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: Hoe Hao Cheng <haochengho12907@gmail.com> Part-of: <mesa/mesa!14482> (cherry picked from commit d15ff96d)
-
Before RA, subdword operands must use .xx After RA, opsel can either be .xx or .yy Cc: mesa-stable Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <mesa/mesa!14472> (cherry picked from commit 4e2b624c)
-
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: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!14476> (cherry picked from commit dcbf2423)
-
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: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <mesa/mesa!14474> (cherry picked from commit a5bc8c4b)
-
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: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <mesa/mesa!14474> (cherry picked from commit 6e9cd801)
-
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: Matt Turner <mattst88@gmail.com> Part-of: <mesa/mesa!14322> (cherry picked from commit 3563ae4b)
-
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: Alyssa Rosenzweig <alyssa@collabora.com> Reviewed-by: Emma 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: Icecream95 <ixn@disroot.org> Closes: #5560 Cc: mesa-stable Part-of: <mesa/mesa!14370> (cherry picked from commit b920ace4)
-
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: Alyssa 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)
-
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: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Fixes: 2f125908 ("radv,aco: lower_pack_half_2x16") Part-of: <mesa/mesa!14475> (cherry picked from commit 60c71183)
-
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: Lucas Stach <l.stach@pengutronix.de> Tested-by: Guido Günther <agx@sigxcpu.org> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Part-of: <mesa/mesa!14159> (cherry picked from commit 1b1f8592)
-
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: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Part-of: <mesa/mesa!14425> (cherry picked from commit ccfd5054)
-
Fixes: bb4db22f ("turnip: apply workaround for depth bounds test without depth test") Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <mesa/mesa!14390> (cherry picked from commit fe9c9ec8)
-
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: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Cc: mesa-stable Part-of: <mesa/mesa!14417> (cherry picked from commit 07bc6b7e)
-
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: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <mesa/mesa!14387> (cherry picked from commit b8f0459d)
-
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: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Chia-I Wu <olvaffe@gmail.com> Part-of: <mesa/mesa!14463> (cherry picked from commit 48712b8c)
-
Because the extend_cb vfunc is not initialized, there is a risk that the emission code calls into a random pointer. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: mesa-stable Reviewed-by: Rohan Garg <rohan.garg@intel.com> Part-of: <mesa/mesa!14418> (cherry picked from commit 1d40d53e)
-
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)
-
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)
-
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: Rohan Garg <rohan.garg@intel.com> Reviewed-by: Francisco Jerez <currojerez@riseup.net> Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!13925> (cherry picked from commit af131199)
-
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: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <mesa/mesa!14415> (cherry picked from commit 63101914)
-
Fixes: afff9dd0 ("radv: Use correct buffer size for query pool result copies.") Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <mesa/mesa!14422> (cherry picked from commit 05a5e5a2)
-
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: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!14243> (cherry picked from commit 7a1d3d3a)
-
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: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!14409> (cherry picked from commit d84e0096)
-
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: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Part-of: <mesa/mesa!14285> (cherry picked from commit c1f8bc67)
-
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: Marek Olšák <marek.olsak@amd.com> Tested-by: Filip Gawin <filip.gawin@zoho.com> Part-of: <mesa/mesa!14405> (cherry picked from commit 105b48c8)
-
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: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <mesa/mesa!12609> (cherry picked from commit 4ff57e5a)
-
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)
-
Cc: mesa-stable Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <mesa/mesa!12810> (cherry picked from commit d2780575)
-
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: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <mesa/mesa!14101> (cherry picked from commit d2711f9b)
-
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 <pavel.ondracka@gmail.com> Reviewed-by: Filip Gawin <filip.gawin@zoho.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Emma Anholt <emma@anholt.net> Cc: mesa-stable Part-of: <mesa/mesa!14378> (cherry picked from commit 96ad4f64)
-
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: Alyssa Rosenzweig <alyssa@collabora.com> Reported-by: Icecream95 Closes: #5797 Part-of: <mesa/mesa!14371> (cherry picked from commit 29d319c7)
-
_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: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Jesse Natalie <jenatali@microsoft.com> (cherry picked from commit 83280b8e) Part-of: <mesa/mesa!14377>
-