Commits on Source (64)
-
Dave Airlie authored
Currently llvmpipe calls finish on the context when a shader variant has to be destroyed just in case the variant is currently in use by the setup engine. Fix this by reference counting the shaders, and reference counting the shader variants. Whenever a shader is used in the rasteriser backend, it is added to a reference list and removed when the rasterizer is finished with it. Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Reviewed-by:
Jose Fonseca <jfonseca@vmware.com> Part-of: <!6341>
99330e50 -
Dave Airlie authored
Do pretty much what the gallium state tracker does here, and fill out first/last layer for 3D image views correctly. Fixes: dEQP-VK.binding_model.shader_access.primary_cmd_buf.storage_image*3d* Fixes: b38879f8 ("vallium: initial import of the vulkan frontend") Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
85700885 -
Dave Airlie authored
Don't allocate buffers greater than gallium can handle. Fixes: dEQP-VK.api.buffer.basic.size_max_uint64 Fixes: b38879f8 ("vallium: initial import of the vulkan frontend") Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
668e4c23 -
Dave Airlie authored
for sampler image arrays this code wasn't getting the correct values. Fixes: EQP-VK.binding_model.shader_access.primary_cmd_buf.sampler_immutable.*.descriptor_array* Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
87a638dc -
Dave Airlie authored
Fixes: dEQP-VK.glsl.texture_gather.offsets.* Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
5177ffed -
Dave Airlie authored
Fixes: dEQP-VK.clipping.user_defined.clip_distance.* Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
1d4a560b -
Dave Airlie authored
Fixes: dEQP-VK.spirv_assembly.instruction.graphics.opquantize.* Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
96a5ced6 -
Dave Airlie authored
Since adding support for compacts this crashes with indirects don't get the const address unless it's a const. Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
d7aed02b -
Dave Airlie authored
Fixes: dEQP-VK.glsl.builtin.precision.frexp* dEQP-VK.glsl.builtin.precision.ldexp* Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
21324c40 -
Dave Airlie authored
Fixes: dEQP-VK.renderpass.dedicated_allocation.attachment_allocation.input_output.* dEQP-VK.renderpass.dedicated_allocation.formats*input* Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
65969576 -
Dave Airlie authored
This was suggested by Roland, and fixes stencil images. Fixes: dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.* dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.* Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
727bb217 -
Dave Airlie authored
ARB_framebuffer_no_attachments + multisampling means blend can have an effect even outside of colorbufs Fixes: dEQP-VK.pipeline.multisample.alpha_to_coverage_no_color_attachment.samples_4.alpha_opaque Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
2d638571 -
Dave Airlie authored
Fixes: dEQP-VK.pipeline.multisample.sampled_image.64x64_4.*.samples_4 Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
6d60cd44 -
Dave Airlie authored
Need to update the z value after updating the pos at pixel center, and later reupdate it again, so we can avoid some LLVM IR values not being dominant issues. Fixes: dEQP-VK.renderpass.suballocation.multisample.s8_uint.samples_4 Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
dc6313b0 -
Dave Airlie authored
Fixes: dEQP-VK.glsl.builtin.precision_double.round.* dEQP-VK.glsl.builtin.precision_double.roundeven.* dEQP-VK.glsl.builtin.precision_double.trunc.* Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
b31e8460 -
Dave Airlie authored
GLSL lowers packhalf2x16 itself, but for SPIRV we don't have that option. For packing when NIR lowers it uses f2f16 and for unpack it needs the casting and f2f32 Fixes: dEQP-VK.glsl.builtin.function.pack_unpack.packhalf2x16* dEQP-VK.glsl.builtin.function.pack_unpack.unpackhalf2x16* Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
8f6eb35e -
Dave Airlie authored
This is actually a TODO. Fixes: dEQP-VK.info.device_mandatory_features Reviewed-by:
Roland Scheidegger <sroland@vmware.com> Part-of: <!6381>
35a42ff9 -
Samuel Pitoiset authored
Instead of duplicating shader statistics in two different parts in the driver. This also now reports the LDS size in bytes instead of blocks with VK_AMD_shader_info. Signed-off-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <!6406>
8301a43f -
Jonathan Gray authored
Since cbee1bfb endian.h is unconditionally used if available. glibc has byte order defines with two leading underscores. OpenBSD has private defines with a single leading underscore in machine/endian.h and public defines in endian.h with no underscore. The code under the endian.h block did not check if symbols were defined before equating them so '#if __BYTE_ORDER == __LITTLE_ENDIAN' would turn into '#if 0 == 0' which is always true. Fixes: cbee1bfb ("meson/configure: detect endian.h instead of trying to guess when it's available") Signed-off-by:
Jonathan Gray <jsg@jsg.id.au> Reviewed-by:
Eric Engestrom <eric@engestrom.ch> Part-of: <!5630>
7eab6845 -
Jonathan Gray authored
memfd_create() is a linux syscall replace the use of it with shm_mkstemp() on OpenBSD. unconditionally include stdlib.h for mkstemp()/mkostemp() Fixes: c0376a12 ("util: add anon_file.h for all memfd/temp file usage") Signed-off-by:
Jonathan Gray <jsg@jsg.id.au> Reviewed-by:
Eric Engestrom <eric@engestrom.ch> Part-of: <!5630>
6e9c0661 -
Jonathan Gray authored
Mesa builds with -std=c99 but uses timespec_get() a c11 function. Build with _ISOC11_SOURCE for c11 visibility when -std is specified. On linux c11 visibility comes from defining _GNU_SOURCE. Fixes: e3a8013d ("util/u_queue: add util_queue_fence_wait_timeout") Signed-off-by:
Jonathan Gray <jsg@jsg.id.au> Reviewed-by:
Eric Engestrom <eric@engestrom.ch> Part-of: <!5630>
f9a7e6e8 -
Eric Engestrom authored
Fixes: a47c525f ("meson: build glx") Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Part-of: <!5630>
9ac16864 -
Jonathan Gray authored
OpenBSD does not have TLS Fixes: a47c525f ("meson: build glx") Signed-off-by:
Jonathan Gray <jsg@jsg.id.au> Reviewed-by:
Eric Engestrom <eric@engestrom.ch> Part-of: <!5630>
c97af23b -
Jonathan Gray authored
Follow libGL and only include -ldl in gbm pkg-config file if libdl was actually found. Many systems have these functions in libc and don't have libdl. Fixes: 816bf7d1 ("meson: build gbm") Signed-off-by:
Jonathan Gray <jsg@jsg.id.au> Reviewed-by:
Eric Engestrom <eric@engestrom.ch> Part-of: <!5630>
0398caa9 -
Jonathan Gray authored
Fix absolute to relative timeout computation. Add sanity checks to futex_wait() - handle the NULL timeout pointer case - avoid negative cases. From Matthieu Herrb and Scott Cheloha. Fixes: c91997b6 ("util/futex: use futex syscall on OpenBSD") Signed-off-by:
Jonathan Gray <jsg@jsg.id.au> Acked-by:
Eric Engestrom <eric@engestrom.ch> Part-of: <!5630>
c66c5b38 -
Jonathan Gray authored
Required for pthread_set_name_np() on OpenBSD as there is no pthread_setaffinity_np() to define PTHREAD_SETAFFINITY_IN_NP_HEADER. Fixes: dcf9d91a ("util: Handle differences in pthread_setname_np") Signed-off-by:
Jonathan Gray <jsg@jsg.id.au> Reviewed-by:
Eric Engestrom <eric@engestrom.ch> Part-of: <mesa/mesa!5630>
55765f80 -
Alyssa Rosenzweig authored
Fixes page faults on dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_literal.compute.sampler2d Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6516>
fd41dece -
Alyssa Rosenzweig authored
As imul with a .hi modifier, which implies a 64-bit computation. Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6516>
3e2cb21e -
Alyssa Rosenzweig authored
We don't properly support 64-bit vec2 yet for various reasons, and as-is vectorize will try to create vec4 which we choke on. Since any workloads relying on 64-bit vector performance are already DOA at this point, let's just do the conformant thing. Fixes: dEQP-GLES31.functional.shaders.builtin_functions.integer.umulextended.uvec2_highp_compute Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6516>
2486fe67 -
Alyssa Rosenzweig authored
Fixes scheduler hang in: dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.const_literal_compute Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6516>
41184f89 -
Alyssa Rosenzweig authored
Also goes down the magical ld_color_buffer_32u_old path, but with a different magic number. Maybe should just be the ld_magic instruction. Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6516>
80ebf110 -
Alyssa Rosenzweig authored
We reduce the op to 4-bits, such that the derivative mode becomes its own adjacent parameter. This cleans up handling of texture gathers, but does not affect functionality. Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6516>
f6e19dd3 -
Alyssa Rosenzweig authored
By applying `textureGather` to a `sampler2DShadow`, the blob produces (under the old disassembly): tex_22.vtx.2d.shadow.cont.last r29, texture0, fsampler0.zwyx, r29, The op 0x22 is 10|0010 in binary, the old shadow parameter is 1, and old gather parameter is 0, so we get 0110|0010 in binary, or an op of textureLod with a mod of 0110 = 6. Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6516>
661123bb -
Alyssa Rosenzweig authored
As previously shown, it is a mode on top of textureLod. The main gotcha is the results are swizzled; we reuse the Broadcom lowering for that. Also, there's a pretty significant erratum affecting gathers of cubemaps which can be dealt with... eventually. Fixes: dEQP-GLES31.functional.texture.gather.basic.2d.* dEQP-GLES31.functional.texture.gather.basic.2d_array.* Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6516>
7dab5749 -
Alyssa Rosenzweig authored
Exposes ARB_texture_gather when PAN_MESA_DEBUG=deqp is set. Also update docs/features.txt. Fixes: dEQP-GLES31.functional.texture.gather.offset.implementation_offset.* Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6516>
8ff6e7c7 -
Alyssa Rosenzweig authored
+ GL_ARB_internalformat_query + GL_ARB_texture_stencil8 + GL_ARB_stencil_texturing + GL_ARB_compute_shader + GL_ARB_shader_storage_buffer_object Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6516>
efd29d42 -
Alejandro Piñeiro authored
For several schedule restrictions, we are checking if the instruction is using the vpm. So far it was implemented as being a read or a write of the vpm. But VPM wait (vpmwt) is not a read or a write (it is a wait until all pending writes finishes). This is relevant to implement peripheral accesses restrictions, as for some cases where vpm read|writes are allowed, vpmwt is not. Fixes: dEQP-VK.binding_model.descriptorset_random.sets8.constant.ubolimitlow.sbolimitlow.sampledimglow.outimgtexlow.noiub.nouab.vert.noia.0 On the sim, as it was raising an assert for wrong peripheral access. v2: simplify v3d_qpu_waits_vpm (Iago) Reviewed-by:
Iago Toral Quiroga <itoral@igalia.com> Part-of: <!6498>
7059708d -
Mike Blumenkrantz authored
EXT_packed_depth_stencil adds GL_UNSIGNED_INT_24_8_EXT which is an interleaved format, but vulkan spec states that reading/writing the corresponding format provides only the D24 component, which requires that we perform separate operations for each component using separate buffers fixes #3031 Reviewed-by:
Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <!6266>
d84a7546 -
Mike Blumenkrantz authored
Reviewed-by:
Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <!6266>
8239fe5d -
Adam Jackson authored
Reviewed-by:
Dave Airlie <airlied@redhat.com> Part-of: <!6499>
5d52c26e -
Lionel Landwerlin authored
All objects are expected to have the base internal object for private data storage. This also fixes a memory leak of a gen_perf_registers structure. Signed-off-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: 51c6bc13 ("anv,vulkan: Implement VK_EXT_private_data") Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <!6255>
b6a013cc -
Faith Ekstrand authored
Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <!6502>
55ae7045 -
Faith Ekstrand authored
Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <!6502>
e8b3bc1d -
Ilia Mirkin authored
This is needed for ARB_transform_feedback2, which I plan on requiring for ES3. Also update docs/features.txt Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6247>
4c050f22 -
Emma Anholt authored
The state->shader is missing when used outside of nir_print_shader, just drop these details in that case. We can fix nir_print_instr() to look up the shader, but let's also make sure that an instr detached from a shader (such as one you're constructing but haven't yet inserted) still works. Fixes: 2b1ef5df ("nir: print IO semantics (v2)") Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <!6496>
a3a8322d -
Emma Anholt authored
If you've inserted the instruction into a block, then we can get to the shader. This improves our instruction output, giving you i/o semantics and variable names in intrinsics. Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <!6496>
e281ee04 -
Italo Nicola authored
Signed-off-by:
Italo Nicola <italonicola@collabora.com> Reviewed-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <!6521>
ee288f29 -
Emma Anholt authored
If your driver is totally broken and can't even report its name, let's stop here instead of doing a CTS run full of failure to start tests and reporting them all missing at the end. Reviewed-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6324>
2d1c6070 -
Emma Anholt authored
The ir3 disk cache is initialized when we use the ir3 compiler, even if we don't use it ourselves, and it requires a build id. With lld, it seems we don't end up getting one included by default. Fixes: f97acb4b ("freedreno/ir3: disk-cache support") Reviewed-by:
Rob Clark <robdclark@chromium.org> Part-of: <mesa/mesa!6324>
221aa00e -
Emma Anholt authored
When switching to lld, I saw errors from multiply defined vl symbols due to radeonsi always linking libgalliumvl. Acked-by:
Rob Clark <robdclark@chromium.org> Part-of: <!6324>
8c4fb19f -
Emma Anholt authored
Debian defaults to bfd, which is comically slow. We can't use lld because the old version we have in the debian stable we use has various bugs. This required bumping libwayland, which had multiply-defined symbols issues in the previous release. Closes: #3236 Reviewed-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <!6324>
d3b652f1 -
Emma Anholt authored
Noted by @jekstrand in review of the SSA live index changes. Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <!6408>
5d2b2b59 -
Emma Anholt authored
In nir-to-tgsi, I want to free temps storing SSA values when they go dead, and NIR liveness has most of the information I need. Hoever, when I reach the end of a block, I need to free whatever temps were in liveout which are dead at that point. If liveout is indexed by live_index, then I don't know the maximum live_index for iterating the live_out bitset, and I also don't have a way to map that index back to the def->index that my temps are stored under. We can use the more typical def->index for these bitsets, which resolves both of those problems. The only cost is that ssa_undefs don't get merged into a single bit in the bitfield, but there are generally 1-4 of them in a shader and we don't track liveness for those anyway so splitting them apart is fine. Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <!6408>
73d2c6cd -
Lionel Landwerlin authored
In 957bbc6a we merged all the per stages allocations of push constants into a single one. Unfortunately one field remained per stage. This fixes the issue by including all the per stage values of the masked registers for robust buffer access into the push constant data. v2: Drop unneeded loop (Jason) Signed-off-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: 957bbc6a ("anv: simplify push constant emissions") Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <!6505>
9efdbb2a -
Alyssa Rosenzweig authored
Let's match the blob. Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Cc: mesa-stable Part-of: <!6525>
c8ac01af -
Alyssa Rosenzweig authored
It's not enough to multiply by a .w reciprocal, we have to be taking the reciprocal of the thing we're actually multiplying against. Fixes incorrect rendering in Manhattan. Signed-off-by:
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Cc: mesa-stable Part-of: <!6525>
41d0a81c -
Jesse Natalie authored
The semantics of inputs for CL are a closer match to the semantics of uniforms for graphics. Rather than cross-stage data, it's data that every thread sees uniformly. Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Reviewed-by:
Karol Herbst <kherbst@redhat.com> Part-of: <!6497>
865a2ad0 -
Jesse Natalie authored
Since OpenCL supports untyped images, backends might need type info to be able to support the load/store ops. Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <!5242>
ce6f6624 -
Jesse Natalie authored
There's a few quirks: kernel images are untyped, whether they're sampled is unknown, and they're passed as inputs to the kernel even though SPIR-V declares their address space as UniformConstant. Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!5242>
de36b5b8 -
Jesse Natalie authored
Since OpenCL images don't have types, we can't use the image type here. Rather than special-casing and only using SPIR-V return type for CL images, we can just always use the return type to fill out the tex info. Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!5242>
a196f05f -
Jesse Natalie authored
Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!5242>
701cb9d6 -
Jesse Natalie authored
Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <!5242>
5ce68219 -
Jesse Natalie authored
Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <!5242>
397730ed -
Jesse Natalie authored
Reviewd-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <!5242>
b778e7bd
Showing
- .gitlab-ci.yml 12 additions, 12 deletions.gitlab-ci.yml
- .gitlab-ci/build-apitrace.sh 4 additions, 1 deletion.gitlab-ci/build-apitrace.sh
- .gitlab-ci/container/container_pre_build.sh 7 additions, 0 deletions.gitlab-ci/container/container_pre_build.sh
- .gitlab-ci/container/lava_build.sh 11 additions, 0 deletions.gitlab-ci/container/lava_build.sh
- .gitlab-ci/container/x86_build.sh 1 addition, 1 deletion.gitlab-ci/container/x86_build.sh
- .gitlab-ci/deqp-runner.sh 1 addition, 1 deletion.gitlab-ci/deqp-runner.sh
- docs/features.txt 7 additions, 7 deletionsdocs/features.txt
- meson.build 12 additions, 2 deletionsmeson.build
- src/amd/vulkan/radv_debug.c 1 addition, 1 deletionsrc/amd/vulkan/radv_debug.c
- src/amd/vulkan/radv_pipeline.c 3 additions, 4 deletionssrc/amd/vulkan/radv_pipeline.c
- src/amd/vulkan/radv_shader.c 110 additions, 72 deletionssrc/amd/vulkan/radv_shader.c
- src/amd/vulkan/radv_shader.h 5 additions, 6 deletionssrc/amd/vulkan/radv_shader.h
- src/broadcom/compiler/qpu_schedule.c 2 additions, 2 deletionssrc/broadcom/compiler/qpu_schedule.c
- src/broadcom/qpu/qpu_instr.c 16 additions, 3 deletionssrc/broadcom/qpu/qpu_instr.c
- src/broadcom/qpu/qpu_instr.h 1 addition, 0 deletionssrc/broadcom/qpu/qpu_instr.h
- src/compiler/builtin_type_macros.h 8 additions, 0 deletionssrc/compiler/builtin_type_macros.h
- src/compiler/glsl/glsl_to_nir.cpp 2 additions, 0 deletionssrc/compiler/glsl/glsl_to_nir.cpp
- src/compiler/glsl_types.cpp 13 additions, 0 deletionssrc/compiler/glsl_types.cpp
- src/compiler/nir/nir.c 11 additions, 0 deletionssrc/compiler/nir/nir.c
- src/compiler/nir/nir.h 14 additions, 2 deletionssrc/compiler/nir/nir.h