- Jun 30, 2021
-
-
Eric Engestrom authored
-
Eric Engestrom authored
-
- Jun 26, 2021
-
-
This is the first time we see an application running out of mmap(). We essentially allocate too many batches (+65k) and end up not being able to mmap them, at which point we can't mmap anything anymore and things go sideways. This change allocates bigger batch BOs as we grow an existing command buffer. This drastically reduces the number of BOs we need to allocate (the benchmark that reported the issue now reaches a max of ~630 BOs, instead of reaching 65k and failing previously). v2: Track the total batch size of command buffers (Jason) Just give 0 for batch_len to i915 (Jason) v3: Fix indentation (Jason) v4: Drop uncessary reshuffling of error labels (Jason) v5: Remove empty lines (Marcin) v6: Limit BO growing to chunks of 16Mb (Jason) v7: Add assert on initial size (Jason) v8: Add define for max size (Jason) v9: Fixup v7 assert for non softpin platforms (Lionel) Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Closes: mesa/mesa#4956 Cc: mesa-stable Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!11482> (cherry picked from commit 40b67a29)
-
Some infinite loop cases were already covered by other restrictions (e.g. if the loop had a body), but the case with a single block in the loop body wasn't yet. This prevents an infinite loop when optimizing the shader in dEQP-VK.reconvergence.subgroup_uniform_control_flow_ballot.compute.nesting2.3.2 and various others reconvergence tests. Fixes: 0881e90c ("nir: Split ALU instructions in loops that read phis") Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> [v1] Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!11476> (cherry picked from commit b9519297)
-
It turns out, some combinations of Meson and MSVC doesn't handle UTF-8 symbols in source-files as gracefully as we'd like. Luckily, there's a work-around; forcing UTF-8 as the default-encoding. Please see this Meson ticket for details: https://github.com/mesonbuild/meson/issues/8263 Cc: mesa-stable Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Reviewed-by: Daniel Stone <daniels@collabora.com> Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <mesa/mesa!11424> (cherry picked from commit b437fb81)
-
The second argument to debug_get_bool_option is a boolean, not a pointer. Passing a NULL-pointer there triggers a warning, which we treat as an error on MSVC: ---8<--- ../src/gallium/auxiliary/driver_trace/tr_screen.c(1071): error C2220: the following warning is treated as an error ../src/gallium/auxiliary/driver_trace/tr_screen.c(1071): warning C4047: 'function': 'bool' differs in levels of indirection from 'void *' ../src/gallium/auxiliary/driver_trace/tr_screen.c(1071): error C4024: 'debug_get_bool_option': different types for formal and actual parameter 2 ---8<--- Fixes: c1270d48 ("aux/trace: add screen deduplication for zink+lavapipe tracing") Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Reviewed-by: Daniel Stone <daniels@collabora.com> Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <mesa/mesa!11424> (cherry picked from commit bae4dca8)
-
Without this, I get the following error if I try to compile Zink without any other drivers: src/gallium/targets/libgl-gdi/libgl_gdi.c(210): error C2037: left of 'flush_frontbuffer' specifies undefined struct/union 'pipe_screen' Fixes: fdfe4a4d ("libgl-gdi: add zink support") Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <mesa/mesa!11536> (cherry picked from commit 9aff548f)
-
These functions were added, but never used. Let's get rid of them. Fixes: c2cb2dd3 ("zink: Added support for MacOS MoltenVK APIs.") Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com> Part-of: <mesa/mesa!11554> (cherry picked from commit 95cbb560)
-
This is another Unreal engine game that requires the allow_glsl_cross_stage_interpolation_mismatch workaround. Cc: mesa-stable Closes: mesa/mesa#4966 Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!11558> (cherry picked from commit d22cdcd3)
-
Fixes INSTR_INVALID_PC faults when a shader ends on a 16MB boundary. Cc: mesa-stable Part-of: <mesa/mesa!11551> (cherry picked from commit 08495a94)
-
Closes: mesa/mesa#4874 Reviewed-by: Marek Olšák <marek.olsak@amd.com> CC: mesa-stable Part-of: <mesa/mesa!11362> (cherry picked from commit 52547cfb)
-
Right now the accumulator-clearing move emitted by the generator for Wa_14010017096 inherits the SWSB field from the previous instruction. This can lead to redundant synchronization, or possibly more serious issues if the previous instruction had a TGL_SBID_SET SWSB synchronization mode. Take the SWSB synchronization information from the IR. Fixes: a27542c5 ("intel/compiler: Clear accumulator register before EOT") Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!11433> (cherry picked from commit c19cfa9d)
-
This is unlikely to have had any negative side effect on the original TGL, but will lead to issues on XeHP+ if the software scoreboard pass isn't able to synchronize the accumulator writes. Fixes: a27542c5 ("intel/compiler: Clear accumulator register before EOT") Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!11433> (cherry picked from commit 63abc083)
-
This fixes an issue where one context only creates buffers while another context only destroys buffers. Only the creating context can release its buffers and the destroying context only turns them into zombie buffers. This fix makes the creating context release its zombie buffers. It's not a plot from an apocalyptic movie. Fixes: e014e3b6 "mesa: don't count buffer references for the context that created them" Closes: mesa/mesa#4840 Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <mesa/mesa!11514> (cherry picked from commit ec7e2623)
-
This message pops up in the Meson build logs, but has no context and doesn't seem to be directed at end-users. Sounds like a leftover from a debugging session. Signed-off-by: Simon Ser <contact@emersion.fr> Fixes: d0767fc0 ("amd/addrlib: use cpp.has_argument() to filter compiler arguments") Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <mesa/mesa!11524> (cherry picked from commit 17f0d7ef)
-
Add previously missing line in HEVC SPS header generation on VCN 1.0 devices, for when an image does not need to be cropped. Fixes: e62c7e7c ("radeon: Add cropping to encoded H.265 when padding is used") Signed-off-by: Thong Thai <thong.thai@amd.com> Reviewed-by: Leo Liu <leo.liu@amd.com> Part-of: <mesa/mesa!11535> (cherry picked from commit d977e7fb)
-
spirv_to_nir now requires NIR variables to be created for everything. Fixes: 10b3eecd "spirv: Don't remove variables used by resource..." Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <mesa/mesa!8637> (cherry picked from commit 72437f6d)
-
The Navi 1x NGG hardware can hang in certain conditions when not every wave launched before s_sendmsg(GS_ALLOC_REQ). As a workaround, to ensure this never happens, let's emit a workgroup barrier at the beginning of NGG VS and TES. Note that NGG GS already has a workgroup barrier so it doesn't need this. Cc: mesa-stable Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <mesa/mesa!10837> (cherry picked from commit e6bf5cfe)
-
Navi 1x GPUs have an issue: they can hang when the output vertex and primitive counts are zero. The workaround is exporting a dummy triangle. This commit changes the dummy triangle's vertex so its positions are all NaN. This should make sure the triangle is never rendered. Cc: mesa-stable Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <mesa/mesa!10837> (cherry picked from commit f9447abb)
-
This is to fix a hang that can potentially happen when not every wave had launched when a gs_alloc_req is executed. Cc: mesa-stable Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <!10837> (cherry picked from commit 25314996)
-
The cleanups got the wrong value here, just noticed in drive by. Fixes: b505db38 ("intel: Simplify few version checks involving G4X") Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Part-of: <mesa/mesa!11519> (cherry picked from commit 7c4478f4)
-
mesa/mesa@2dcc9c7f from mesa/mesa!6639 added a resource_get_param hook for llvmpipe, which was nice since it gave lavapipe more features. One of those features was not exporting llvmpipe textures, so those parts were stubbed out and landed in an assert(0). This completely broke kms_swrast (llvmpipe+GBM) on non-release builds, since that definitely does need to export llvmpipe textures. The query codepath which caused this explosion does fall back to resource_get_handle() - which is how it worked previously - but not all callers do this, so just do what all other drivers implementing resource_get_param() do and open-code the translation. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Dave Airlie <airlied@redhat.com> Reported-by: Jonas Ådahl <jadahl@gmail.com> Tested-by: Jonas Ådahl <jadahl@gmail.com> Fixes: 2dcc9c7f ("llvmpipe: add resource get param support.") Ref: mesa/mesa!6639 Part-of: <mesa/mesa!11504> (cherry picked from commit 91029211)
-
this is just default border color and the custom color is ignored Fixes: 36f4e614 ("zink: rework border color handling") Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <mesa/mesa!11495> (cherry picked from commit 7144f338)
-
This avoids all locks for reads and using lock only while actually writing. This is enabled by doing two things: 1) Reading the index incrementally. This way we get new entries written by other processes and do not write duplicate entries. 2) Taking the lock only during writes, and applying the incremental read while holding the lock so we always append to the actual end of the file. Fixes: eca6bb95 ("util/fossilize_db: add basic fossilize db util to read/write shader caches") Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Part-of: <mesa/mesa!11485> (cherry picked from commit 4f0f8133)
-
Fixes: eca6bb95 ("util/fossilize_db: add basic fossilize db util to read/write shader caches") Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Part-of: <mesa/mesa!11485> (cherry picked from commit 2ec1bff0)
-
Otherwise the seek can overlap with other reads/writes. Fixes: eca6bb95 ("util/fossilize_db: add basic fossilize db util to read/write shader caches") Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Part-of: <mesa/mesa!11485> (cherry picked from commit bd41c51c)
-
Output loads and stores are lowered to shared memory access, so we have to update the barriers to also reflect this. Closes: #4955 Fixes: bf966d1c Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <mesa/mesa!11484> (cherry picked from commit 72174a3e)
-
Eric Engestrom authored
-
- Jun 18, 2021
-
-
If compressed rendering is only used for the depth aspect of a depth/stencil image, stencil might also be compressed and it needs to be decompressed. This only happens for non-TC compatible images. As long as the driver needs to decompress the depth aspect, I don't think that decompressing the stencil aspect introduces extra cost. Fixes dEQP-VK.renderpass*late_fragment_tests*.d32_sfloat_s8_uint for chips that don't support TC-compat HTILE. Cc: 21.1 mesa-stable Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <mesa/mesa!11263> (cherry picked from commit 213c4c5f)
-
From the Vulkan spec 1.2.181: "The difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with the same image" This is invalid usage but adding a check in the driver is safe and might avoid spurious failures. This is a workaround for the inventory GPU hang with Cyberpunk 2077 which is actually a game bug. Luckily the game handles this error gracefully. Since the addrlib change from March, addrlib now selects a better swizzle mode (4KB instead of 64KB) which reduces image size. Though, the game assumes that an image with 2 mips is always smaller than the same image but with 6 mips. This is not always true if the swizzle mode is different. Then, it creates a D312 heap that is too small for the 2 mips image and the GPU hang with a memory violation, ugh... Note that next vkd3d-proton release should also reject this but fixing both sides is fine. Cc: 21.1 mesa-stable Closes: mesa/mesa#4823 Closes: mesa/mesa#4593 Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <mesa/mesa!11448> (cherry picked from commit 50233d0d)
-
This changes seems to prevent a hang, at least on Renoir chips. Closes: mesa/mesa#4866 Cc: mesa-stable Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <mesa/mesa!11356> (cherry picked from commit 66dbd16f)
-
When an OpBranchConditional that had two equal branches was parsed, we were treating it as a regular OpBranch. However this doesn't work well when there's an associated OpSelectionMerge. We ended up skipping marking the merge block as such, and depending on what was inside the construct we would end up trying to process the block twice. Fix this by keeping the vtn_if around, but when emitting NIR identify the two equal branch case. Fixes: 9c2a1143 ("spirv: Rewrite CFG construction") Closes: #3786, #4580 Reviewed-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Acked-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!9297> (cherry picked from commit 64cb143b)
-
Read directly from the instruction getting spilt. Otherwise a fill will be inserted before the spill writing the value, so the instruction reading the spilt value gets garbage data. Use the bundle_id to check if the instructions are in the same bundle. Insert a move instruction, as the spill needs the value in a LD/ST register such as AL0, while the ALU instruction reading the value needs it in a work register such as R0. Cc: mesa-stable Closes: mesa/mesa#4857 Part-of: <mesa/mesa!11212> (cherry picked from commit 38e8d7af)
-
Otherwise the data already written to the node will get overwritten. Cc: mesa-stable Part-of: <mesa/mesa!11212> (cherry picked from commit 31d26ebf)
-
Cc: mesa-stable Part-of: <mesa/mesa!11212> (cherry picked from commit ed9a9a09)
-
So that it is possible to check if two instructions were scheduled into the same bundle. Cc: mesa-stable Part-of: <mesa/mesa!11212> (cherry picked from commit 1490e7e6)
-
Closes: #4860 Fixes: 05a37e24 ("intel/nir: Set lower txs with non-zero LOD") Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <mesa/mesa!11435> (cherry picked from commit 4c679242)
-
Commit 24342e49 changed how primitive topology is handled on Gfx8+ but missed updating the Gfx7.x code. As a result, tests which previously used topologies like PATCHLIST_3 instead started using bogus ones like LINESTRIP_ADJ. This caused a GPU hangs in a bunch of Vulkan conformance tests involving tessellation. This fixes those hangs. Fixes: 24342e49 ("anv: fix dynamic primitive topology for tess") Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <mesa/mesa!11434> (cherry picked from commit 0510a947)
-
builtin_builder::~builtin_builder() and builtin_builder::release() are running into race condition. This leads lightsmark to crash at the end because both calls ralloc_free which mutates the arguments state This patch fixes lightsmark2008 crash Fixes: e4da8b9c ("mesa/compiler: rework tear down of builtin/types") Reviewed-by: Charmaine Lee <charmainel@vmware.com> Reviewed-by: Neha Bhende <bhenden@vmware.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Tested-by: Neha Bhende <bhenden@vmware.com> Part-of: <mesa/mesa!11385> (cherry picked from commit eb272f65)
-
Buffers are created without a format in Vulkan, and we always pass in R8_UNORM for them in Gallium. It's the view-formats we should have checked, if anything. But that's orthogonal to this. We shoudn't keep checking R8_UNORM capabilities for buffers, all it's going to do is trigger asserts. Fixes: 00dc0036 ("zink: flatten out buffer creation usage flags codepath") Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <mesa/mesa!11416> (cherry picked from commit a8fc38b2)
-