- 13 Jan, 2021 1 commit
-
-
Danylo Piliaiev authored
Vulkan guarantees only 4 byte alignment of offset for vkCmdDrawIndirect, while CP_LOAD_STATE.EXT_SRC_ADDR requires 16 byte alignment which makes us copy indirect parameters to a correctly aligned buffer. Blob does essentially the same but emits indirect CP_LOAD_STATE with src = SS6_UBO and EXT_SRC_ADDR = 0xe0000, and only for a first dispatch. Fixes: dEQP-VK.compute.indirect_dispatch.* Signed-off-by:
Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <mesa/mesa!8444>
-
- 06 Jan, 2021 2 commits
-
-
Emma Anholt authored
Stencil texture sampling (such as what we have to do for BlitFramebuffer) is broken with UBWC enabled. We can't just take the fd_resource_uncompress() path, because that's a blit just like BlitFramebuffer. Fixes failure in dEQP-GLES3.functional.fbo.msaa.2_samples.stencil_index8, but also the uncaught rendering fails of 4_samples.stencil_index8 and depth24_stencil8. Prior to "911ce374 freedreno/a6xx: Fix MSAA clear" we would usually pass and sometimes flake fail on this test occasionally, thus it being listed as a flake (though the rendering was actually broken). Since that commit, though, we consistently fail on a pixel of the broken rendering, and thus this was brought to my attention by the #freedreno-ci channel spam. Rob took a look at the performance impact of this, and the worst was maybe up to .5% fps hit on trex. Part-of: <!8319>
-
Danylo Piliaiev authored
All necessary features are already supported. GL33 CTS failures: KHR-GL33.texture_swizzle.smoke - timeouts, passes otherwise KHR-GL33.cull_distance.coverage - see https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2673 fix is not in the public repo yet. Signed-off-by:
Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <!8270>
-
- 29 Dec, 2020 1 commit
-
-
Emma Anholt authored
We have been advertising 3.1, which waffle has issues creating contexts for, causing coverage (and performance!) issues in piglit. We should support all the necessary features already. Some new failures are caught by the 3.2 CTS, but they look like they're existing issues simply not covered by the minimal GL 3.0 CTS. Fixes: #3037 Part-of: <!8255>
-
- 23 Dec, 2020 1 commit
-
-
Emma Anholt authored
I moved QPA-to-XML conversion to the runner, so Mesa CI (and developers!) don't need to do quite so much in bash. I also made it clean up caselist .qpa files since nobody ever wants them and we deleted them anyway. This cleans up a ton of the job log output. Additionally, I added a subcommend to turn the .csv into a junit output that we can expose to gitlab. Now, the pipeline's status page will report the failed testcases, and the "detail" button will give you a link to the .XML to view for the failure. (We don't report all testcases because it's too much load for the gitlab server). Note that this will 404 for the LAVA runners for now, as they don't retain artifacts in gitlab (the plan is to eventually have them minio upload the artifacts). This uprev also includes a deqp output parsing fix, resulting in us catching a couple more failures in some drivers. Reviewed-by:
Christian Gmeiner <christian.gmeiner@gmail.com> Part-of: <!8206>
-
- 17 Dec, 2020 1 commit
-
-
Juan A. Suárez authored
This new version contains several fixes. v1 (Eric): - Rebuild fail list for freedreno and lavapipe - Move freedreno crashes to skip list Closes: #3902 Reviewed-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Dave Airlie <airlied@redhat.com> Signed-off-by:
Juan A. Suarez Romero <jasuarez@igalia.com> Part-of: <!8088>
-
- 08 Dec, 2020 1 commit
-
-
Jonathan Marek authored
Alpha channel is always linear (oops). Fixes: ddac5933 ("turnip: call packing functions directly for pack_gmem_clear_value") Signed-off-by:
Jonathan Marek <jonathan@marek.ca> Part-of: <!7899>
-
- 03 Dec, 2020 1 commit
-
-
Jonathan Marek authored
Z scaling case without nearest filter needs a 3D texture, so add a 3D texture path and use it to cover all scaling/mirroring cases. The "rotation" argument for the clear/blit "setup" function is replaced with a more generic "blit_param", which has a different meaning for the 3D blit path. (to avoid having too many arguments) Signed-off-by:
Jonathan Marek <jonathan@marek.ca> Part-of: <!7781>
-
- 19 Nov, 2020 1 commit
-
-
Samuel Iglesias Gonsálvez authored
Signed-off-by:
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Reviewed-by:
Jonathan Marek <jonathan@marek.ca> Part-of: <!6884>
-
- 18 Nov, 2020 1 commit
-
-
Emma Anholt authored
Giving us an unaligned pointer is invalid, and this helps switch a CTS bug from being a flake to a consistent crash. https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2661 Part-of: <!7662>
-
- 16 Nov, 2020 1 commit
-
-
Emma Anholt authored
Right now if the shader indirects on some large constant array, we see NIR load_consts (usually from the const file) of its contents into general registers, then indirection on the GPRs. This often results in register allocation failures, as it's easy to go beyond the ~256 dwords of registers per invocation. By moving the large constants to a UBO, we can load an arbitrary number of them. They also can be theoretically moved to the constant reg file (~2k dwords), though you're unlikely to hit this path without an indirect load on your large constant, and we don't yet let UBO indirect loads get moved to constant regs. This possibly won't work out right if we have 16-bit load_constants, but without other MRs in flight we won't see 16-bit temps to be lowered to this. This allows 2 kerbal-space-program shaders to compile that previously would fail, and fixes the new dEQP-VK and -GLES2 tests I wrote that dynamically index a 40-element temporary array of float/vec2/vec3/vec4 with constant element initializers. Closes: #2789 Part-of: <!5810>
-
- 11 Nov, 2020 1 commit
-
-
Emma Anholt authored
I want the new version to show the fix in the fd-largeconsts branch (and make sure the pass keeps working, and make sure other drivers get around to fixing the issue). While I'm here, cherry-pick in the VK test along with the GLES one, and also the fix for clip_three on ARMs. Since the VK and GL test lists were changing, I took the opportunity to reset freedreno xfails lists to just the tests that are being run with the CTS uprev, and increase its coverage to 1/10th of the CTS across two boards (since we just freed up a bunch of runtime with the grouped gles "other" job). For panfrost, I didn't spend the time characterizing the t720 fragment_ops flakes like I did for the deqp-runner change. Given that the random behavior changes between CTS versions, it doesn't seem to be worth the time to do so. Reviewed-by:
Tomeu Vizoso <tomeu.vizoso@collabora.com> Part-of: <!6971>
-
- 06 Nov, 2020 1 commit
-
-
Emma Anholt authored
I found the C++ runner hard to develop on, and we had stability issues and outstanding feature needs that made me want something I felt good about hacking on. Thus, Rewrite It In Rust of the deqp runner. The new runner includes: - Skip lists don't reshuffle the test list. - Known-flake handling without resorting to skip lists (fixing our main CI reliability issue on a3xx right now). - Per-thread Vulkan shader caches should speed up VK CI runtime. - Tracking of crashes separate from fails (so we can see progress on that front). - Logging of deqp stderr spam (particularly assertion failures!) in the CI log. - Integrated QPA filtering so we don't have bash perf issues for it. - Logging of what caselist to go look at for a given error report (in red, so it's easier to find in your CI log). - The code is 1/3 unit tests, and easy to extend for more coverage. - Non-LAVA CI runs create a failures.csv in artifacts that you can check in as your deqp-*-fails.txt file. - Test runtime is included in results.csv so you can debug how to speed up your CI job. - Pretty summary at the end of the run of slow/flaky/failed tests. Since this is a new runner with a different RNG, the test groups are shuffled one more time. This seems to result in some panfrost T720 stability issues (See its new deqp-panfrost-t720-flakes.txt), and one new flake in freedreno a630. Reviewed-by:
Tomeu Vizoso <tomeu.vizoso@collabora.com> Part-of: <!7434>
-
- 23 Oct, 2020 1 commit
-
-
Connor Abbott authored
Also, plumb things through ir3 so that we don't lower clip planes to discard anymore. This seems to fix some artifacts in the neverball trace. Part-of: <!6959>
-
- 01 Sep, 2020 3 commits
-
-
Emma Anholt authored
Since we expose desktop GL, let's get at least a little bit of testing coverage of it. Reviewed-by:
Rob Clark <robdclark@chromium.org> Part-of: <!6526>
-
Emma Anholt authored
The version bump gets us various testcase fixes, mostly to test requirements). While we're rebuilding the container, copy GL CTS stuff from build-deqp-gl.sh -- we had already included the glcts binary in our image, but we had unnecessary other binaries and were missing the mustpass files (container size stays the same overall). Also pull in all the GLES mustpass lists, not just the main ones -- Rob wants them to increase our coverage to match what Android CTS covers. Reviewed-by:
Rob Clark <robdclark@chromium.org> Part-of: <!6526>
-
Jonathan Marek authored
Rework setup_{input,output} to be called during emit_intrinsic, in a way which allows struct/array/matrix type varyings to work. This allows turnip to pass dEQP-VK.glsl.linkage.varying.struct.* Signed-off-by:
Jonathan Marek <jonathan@marek.ca> Part-of: <!6181>
-
- 24 Aug, 2020 1 commit
-
-
Rob Clark authored
If you have a sequence where there is a single buffer associated with the current render target, and then you end up shadowing it on the 3d pipe (u_blitter), because of how we swap the new shadow and rsc before the back-blit, you could end up confusing things into thinking that the blitters framebuffer state is the same as the current framebuffer state. Re-organizing the sequence to swap after the blit is complicated when also having to deal with CPU memcpy blit path, and the batch/rsc accounting. So instead just detect this case and flush if we need to. Fixes: dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_clear dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw Cc: mesa-stable@lists.freedesktop.org Signed-off-by:
Rob Clark <robdclark@chromium.org> Part-of: <!6434>
-
- 03 Aug, 2020 1 commit
-
-
Jonathan Marek authored
A630 doesn't have the HW format we use to sample stencil, so it needs a workaround. It also has a bug around the AS_R8G8B8A8 format, which doesn't work when UBWC is disabled, so use 8_8_8_8_UNORM instead when UBWC is disabled (using AS_R8G8B8A8 or 8_8_8_8_UNORM should only matter with UBWC) Signed-off-by:
Jonathan Marek <jonathan@marek.ca> Part-of: <!5438>
-
- 24 Jul, 2020 1 commit
-
-
Connor Abbott authored
Note that there are some extra tess fails, but they're probably unrelated to the actual feature. There were also some xfails that were created as part of an earlier attempt to enable the feature which were fixed in the meantime, so remove them. Part-of: <!5738>
-
- 18 Jul, 2020 1 commit
-
-
Emma Anholt authored
legalize_block() can get run multiple times, which I didn't notice when adding fine derivs support. Other instruction clones change things such that the legalization won't trigger again, but that didn't apply to the DS.PP legalization. To keep someone else from tripping over this, split the one-shot legalization out of the iterative sync flag application. Fixes failures in dEQP-VK.glsl.derivate.dfdxfine.* Closes: #3198 Part-of: <!5699>
-
- 09 Jul, 2020 1 commit
-
-
Jonathan Marek authored
GL driver was relying on this being done by gallium, but there might be new loops to unroll during optimizations and turnip needs it. Signed-off-by:
Jonathan Marek <jonathan@marek.ca> Part-of: <!5818>
-
- 06 Jul, 2020 1 commit
-
-
Connor Abbott authored
Don't lower to offsets, instead use nir_lower_explicit_io here and use actual pointers for UBO's and SSBO's. This makes KHR_variable_pointers trivial. This also fixes asserts with shared variables, which are now supposed to be lowered with nir_lower_explicit_io. Part-of: <!5684>
-
- 19 Jun, 2020 1 commit
-
-
Emma Anholt authored
Looks like it fixes some potentially important VK test bugs. But also, it fixes the GLES31 SSBO layout tests to not be so excessively large, so we can run them in a reasonable time now. Note that a630 fail list is reset, since the test list has changed and so we end up with a different subset of tests being run. Interestingly, in the process the semaphore tests are now reporting "NotSupported (Exporting and importing semaphore type not supported at vktSynchronizationSignalOrderTests.cpp:513)" where they weren't before. Reviewed-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <!5554>
-
- 18 Jun, 2020 2 commits
-
-
Jonathan Marek authored
Some CTS tests don't run because of this. Fixes: 91c757b7 ("turnip: use the common code for generating extensions and dispatch tables") Signed-off-by:
Jonathan Marek <jonathan@marek.ca> Part-of: <!5522>
-
Jonathan Marek authored
Since a value of at least "align" is used for nblocks, we might end up with nblocks greater than the number of GMEM blocks remaining. Check for this case and bail out, sysmem rendering will be used for such cases. Fixes some of these tests: dEQP-VK.pipeline.render_to_image.core.*.huge.* Signed-off-by:
Jonathan Marek <jonathan@marek.ca> Part-of: <!5499>
-
- 12 Jun, 2020 1 commit
-
-
Jonathan Marek authored
This fixes cases where the 3D path is used with layered rendering. Fixes dEQP-VK.renderpass.suballocation.multisample_resolve.layers* failures Note the blob's 3D fallback path behaves differently, and uses the framebuffer information to clear each layer individually (changing the MRT state each time). But that's not possible in all cases, and the blob fails to clear properly in dEQP-VK.geometry.layered.*.secondary_cmd_buffer cases. So this clear path is not based on the blob's behavior. Signed-off-by:
Jonathan Marek <jonathan@marek.ca> Part-of: <!5426>
-
- 10 Jun, 2020 2 commits
-
-
Emma Anholt authored
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z fails pretty strangely (given that we're passing everything else) and there's an old VK-GL-CTS bug open about this test, and it's suspicious that all the ARM drivers seem to have trouble with it. I tried dropping to -O0 on guilding that file in the CTS and it didn't help, though. Part-of: <!5419>
-
Emma Anholt authored
Same bit as on other gens, apparently it just got missed on this one. Part-of: <!5419>
-
- 09 Jun, 2020 2 commits
-
-
Emma Anholt authored
It is a required device feature, and all enabled tests in dEQP-VK.robustness.* pass. Reviewed-by:
Jonathan Marek <jonathan@marek.ca> Part-of: <!5266>
-
Emma Anholt authored
Test 1/50th of the CTS on a630 pre-merge, since we've got hardware that can do it and infrastructure that should handle instability with a less-mature driver. Reviewed-by:
Christian Gmeiner <christian.gmeiner@gmail.com> Part-of: <!5266>
-
- 06 Feb, 2020 1 commit
-
-
Emma Anholt authored
This brings in the surfaceless fixes so we don't need to check out the whole repo to cherry pick any more (which was bothering me as I debugged things late in the painfully slow ARM container build process). Reviewed-by:
Michel Dänzer <mdaenzer@redhat.com> Tested-by: Marge Bot <!3662> Part-of: <!3662>
-
- 13 Sep, 2019 2 commits
-
-
Emma Anholt authored
This hasn't failed for me in ~5 minutes of looping over dEQP-GLES3.functional.fbo.msaa.* Reviewed-by:
Adam Jackson <ajax@redhat.com> Acked-by:
Rob Clark <robdclark@chromium.org> Reviewed-by:
Kristian H. Kristensen <hoegsberg@google.com>
-
Emma Anholt authored
These haven't failed for me in ~10 minutes of looping over draw.random.*. Reviewed-by:
Adam Jackson <ajax@redhat.com> Acked-by:
Rob Clark <robdclark@chromium.org> Reviewed-by:
Kristian H. Kristensen <hoegsberg@google.com>
-
- 12 Sep, 2019 1 commit
-
-
Emma Anholt authored
Since freedreno's kernel and GPU reset seem to be totally solid, we don't need to have the complexity of the LAVA setup that panfrost has. Instead, we can register some boards as shared gitlab runners and have the jobs run out of a docker container just like we do for llvmpipe. Just make sure that the DRI device node is passed through to the containers in the gitlab config ('devices = ["/dev/dri"]' under runners.docker). If a runner fails (networking dies, kernel panic, etc.) it'll take out one build but the rest can keep going since gitlab-runner is what pulls jobs. Since the runner pulls jobs, it also means that they can live behind firewalls instead of needing some public address to be accessed by gitlab.fd.o. For now, enable it just on db410c (A307) and cheza (A630) as those are the hardware that I have plenty of. A307 is only testing GLES2 since running all of GLES3 takes too long for the number of boards I've brought up. Acked-by:
Rob Clark <robdclark@chromium.org> Acked-by:
Kenneth Graunke <kenneth@whitecape.org>
-