aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* anv: fix fence underlying primitive checksLionel Landwerlin2019-12-121-3/+13
| | | | | | | | | | | | | | We appear to have got lucky that the only type of temporary fence payload we could have was a syncobj and that would only happen when the type of the permanent payload was also a syncobj. This code was broken if that assumption changed and it did in commit f9a3d9738b12. Signed-off-by: Lionel Landwerlin <[email protected]> Cc: <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Reviewed-by: Ivan Briano <[email protected]>
* vtn/opencl: add shuffle/shuffle supportDave Airlie2019-12-121-1/+52
| | | | | | | This adds nir encoding for these, generating them from libclc was very expensive, and this is a lot simpler. Reviewed-by: Karol Herbst <[email protected]>
* vtn: convert vload/store to single value loopsDave Airlie2019-12-121-11/+20
| | | | | | | There is an alignment issue doing this the other way, the spec clearly says vload/store don't require alignment. Reviewed-by: Karol Herbst <[email protected]>
* iris: Default to X-tiling for scanout buffers without modifiersKenneth Graunke2019-12-111-0/+2
| | | | | | | | | | | | | | | Neither Mutter nor KWin's wayland compositors appear to use modifiers. In the non-modifier case, iris was still trying to use Y-tiling for scan-out surfaces, leading to this error: (gnome-shell:7247): mutter-WARNING **: 09:23:47.787: meta_drm_buffer_gbm_new failed: drmModeAddFB failed: Invalid argument We now fall back to the historical X-tiling for scanout buffers, which ought to work everyone, at lower performance. To regain that, we need to ensure modifiers are actually supported in environments people use. Fixes: fbf31247710 ("iris: Rework tiling/modifiers handling") Reviewed-by: Jason Ekstrand <[email protected]>
* llvmpipe: enable ARB_shader_draw_parameters.Dave Airlie2019-12-124-24/+15
| | | | | | All the bits should be in place for this now. Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: fixup base_vertex supportDave Airlie2019-12-123-3/+8
| | | | | | | base vertex should be 0 for non-indexed draws according to the piglit tests. Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm/draw: add support for draw_id system value.Dave Airlie2019-12-129-3/+19
| | | | Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: add base instance sysval supportDave Airlie2019-12-125-4/+14
| | | | Reviewed-by: Roland Scheidegger <[email protected]>
* nv50/ir: implement global atomics and handle it for nirKarol Herbst2019-12-112-4/+40
| | | | | | | TGSI doesn't have any concept of global memory right now. Signed-off-by: Karol Herbst <[email protected]> Acked-by: Dave Airlie <[email protected]>
* nir: handle nir_deref_type_ptr_as_array in rematerialize_deref_in_blockKarol Herbst2019-12-111-0/+1
| | | | | | | | | I forgot why that was required, but it still is the correct thing to do. Hit it at some point when working on implementing more CL features. Signed-off-by: Karol Herbst <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* spirv: add OpLifetime*Rob Clark2019-12-111-0/+4
| | | | | | | | | These are just hints so we can ignore them. Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Karol Herbst <[email protected]> Reviewed-by: Dave Airlie <[email protected]> Signed-off-by: Karol Herbst <[email protected]>
* clover/spirv: allow Int64 Atomics for supported devicesKarol Herbst2019-12-111-0/+6
| | | | | | Signed-off-by: Karol Herbst <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* clover/nir: set spirv environment to OpenCLKarol Herbst2019-12-111-0/+1
| | | | | | Signed-off-by: Karol Herbst <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* clover/nir: treat UniformConstant as global memoryKarol Herbst2019-12-112-1/+2
| | | | | | | | | | | | Just like we already do in the llvm backend. The current constant buffer code seems fundamentally flawed and right now we are thinking on how we want to reimplement all of that. But until that happens, just treat is as global memory and go on. Signed-off-by: Karol Herbst <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* spirv: handle UniformConstant for OpenCL kernelsKarol Herbst2019-12-113-2/+19
| | | | | | | | | | | | | | | The caller is responsible for setting up the ubo_addr_format value as contrary to shared and global, it's not controlled by the spirv. Right now clovers implementation of CL constant memory uses a 24/8 bit format to encode the buffer index and offset, but that code is dead as all backends treat constants as global memory to workaround annoying issues within OpenCL. Maybe that will change, maybe not. But just in case somebody wants to look at it, add a toggle for this inside vtn. Signed-off-by: Karol Herbst <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* gallivm/nir: copy compare ordering code from tgsiDave Airlie2019-12-121-1/+6
| | | | | | | This fixes some isinf/isnan tests copying what the tgsi code paths do for float compares Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm/nir: cleanup code and call cmp wrapperDave Airlie2019-12-121-12/+14
| | | | Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: fix perspective enable if usage_mask doesn't have 0 bit setDave Airlie2019-12-121-2/+2
| | | | | | | | | | The current code looks like a typo, and fails if the usage_mask is for a y/z enabled input. Fixes piglit ext_transform_feedback-immediate-reuse-index-buffer with llvmpipe/nir Reviewed-by: Roland Scheidegger <[email protected]>
* gallivm: fix transpose for when first channel isn't createdDave Airlie2019-12-121-6/+12
| | | | | | | | | | | The previous fix worked when the second channel wasn't exposed, but a couple of piglit tests have inputs with just the y/z chans, no x/w. Partly Fixes piglit ext_transform_feedback-immediate-reuse-index-buffer with llvmpipe/nir Fixes: 5363cda52b84 ("gallivm: add swizzle support where one channel isn't defined.") Reviewed-by: Roland Scheidegger <[email protected]>
* llvmpipe/nir: handle texcoord requirementsDave Airlie2019-12-125-6/+6
| | | | | | Switch to using texcoord intrinsic support. Reviewed-by: Roland Scheidegger <[email protected]>
* freedreno/a6xx: Silence warning for unused perf countersKristian H. Kristensen2019-12-111-2/+2
| | | | | | Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno/a6xx: Convert some tile setup to OUT_REG()Kristian H. Kristensen2019-12-111-25/+15
| | | | | | Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno/a6xx: Convert gmem blits to OUT_REG()Kristian H. Kristensen2019-12-111-33/+13
| | | | | | Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno/a6xx: Convert VSC pipe setup to OUT_REG()Kristian H. Kristensen2019-12-111-16/+13
| | | | | | Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno/a6xx: Convert emit_zs() to OUT_REG()Kristian H. Kristensen2019-12-111-29/+24
| | | | | | Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno/a6xx: Convert emit_mrt() to OUT_REG()Kristian H. Kristensen2019-12-111-42/+37
| | | | | | Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno/a6xx: Include fd6_pack.h in a few filesKristian H. Kristensen2019-12-112-8/+10
| | | | | | | | | Including non-functional changes to get the value from the fd_reg_pair in places. Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno/a6xx: Drop stale includeKristian H. Kristensen2019-12-111-3/+0
| | | | | | Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno/registers: Add 64 bit address registersKristian H. Kristensen2019-12-111-0/+13
| | | | | | Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno: New struct packing macrosKristian H. Kristensen2019-12-113-35/+280
| | | | | | Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno/registers: Remove duplicate register definitionsKristian H. Kristensen2019-12-115-16/+1
| | | | | | Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Kristian H. Kristensen <[email protected]>
* docs: remove mailing list as way of submitting patchesTimothy Arceri2019-12-122-68/+10
| | | | | | | | | | All developers now use gitlab, don't confuse newcomers by suggesting they might use the mailing list. We want everyone to use gitlab so that patches get run through basic CI before they are merged. Acked-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Acked-by: Dylan Baker <[email protected]>
* anv: Bump the advertised patch version to 129Jason Ekstrand2019-12-111-1/+1
| | | | | | We've been keeping up with the spec updates. Reviewed-by: Lionel Landwerlin <[email protected]>
* anv: Unconditionally advertise Vulkan 1.1Jason Ekstrand2019-12-111-4/+1
| | | | | | | | | Vulkan 1.1 requires VK_KHR_external_fence which requires syncobj support to be actually usable. However, it doesn't strictly require that we support any external handle types. We should be able to advertise 1.1 even on old kernels that don't have syncobj support. Reviewed-by: Lionel Landwerlin <[email protected]>
* anv: Flush the queue on DeviceWaitIdleJason Ekstrand2019-12-111-3/+16
| | | | | | | | | | | When we have syncobj_wait, we can trust in WAIT_FOR_SUBMIT but when we don't, we only have BO waits and those aren't quite as nice. This commit adds a flag to _anv_queue_submit to wait for the queue to drain before returning. This gives us the behavior we need to implement DeviceWaitIdle. Fixes: 246261f0add "anv: prepare the driver for delayed submissions" Reviewed-by: Lionel Landwerlin <[email protected]>
* nir/tests: MSVC build fixKarol Herbst2019-12-111-14/+11
| | | | | | Fixes: 11f736a6f9c "nir/tests: add serializer tests" Signed-off-by: Karol Herbst <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* swr/rasterizer: Add tessellator implementation to the rasterizerJan Zielinski2019-12-115-35/+3326
| | | | | | | | | | | | | | | | This is initial commit on the way to implement ARB_tessellation_shader extension in OpenSWR. It introduces tessellator implementation taken from Microsoft GitHub (published under MIT license): https://github.com/microsoft/DirectX-Specs/blob/master/d3d/archive/images/d3d11/tessellator.cpp https://github.com/microsoft/DirectX-Specs/blob/master/d3d/archive/images/d3d11/tessellator.hpp It also adds some glue code that connects the tessellator to the internals of SWR rasterizer. Acked-by: Dave Airlie <[email protected]> Acked-by: Bruce Cherniak <[email protected]> Reviwed-by: Alok Hota <[email protected]>
* gitlab-ci: set RADV_DEBUG=checkir for RADV test jobsSamuel Pitoiset2019-12-111-0/+1
| | | | | | | This is used to validate if the driver emits correct LLVM IR. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* intel: add mi_builder_test for gen12Eric Engestrom2019-12-111-1/+1
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]>
* gitlab-ci: Use lavacli from packagesRohan Garg2019-12-112-19/+4
| | | | | | | | | | lavacli 0.9.8 is now available in Debian Testing. Ref: https://tracker.debian.org/news/1066828/lavacli-098-1-migrated-to-testing/ Fixes: 555c0de ("gitlab-ci: Move LAVA-related files into top-level ci dir") Signed-off-by: Rohan Garg <[email protected]> Acked-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Tomeu Vizoso <[email protected]>
* lima/ppir: enable lower_fdphErico Nunes2019-12-111-0/+1
| | | | | | | | | Otherwise we may lower some fdot to fdph which is not implemented in pp. Fixes #2126 Signed-off-by: Erico Nunes <[email protected]> Reviewed-by: Vasily Khoruzhick <[email protected]>
* nir/tests: add serializer testsKarol Herbst2019-12-112-0/+299
| | | | | Signed-off-by: Karol Herbst <[email protected]> Reviewed-by: Connor Abbott <[email protected]>
* nir/serialize: fix vec8 and vec16Karol Herbst2019-12-111-12/+17
| | | | | | | | | | | | | | | | | Nir serializes uses nir_ssa_alu_instr_src_components in a few places to determine how many components a src has, but that's not what this function returns. It simply returns how many channels are used, which is still fine for most of the code. This was breaking code like this: vec16 32 ssa_1 = intrinsic load_global vec1 32 ssa_2 = fmax ssa_1.a, ssa_2.b v2: make the 16bit encoding work for identify swizzles again Signed-off-by: Karol Herbst <[email protected]> Reviewed-by: Connor Abbott <[email protected]>
* radv: Fix RGBX Android<->Vulkan format correspondence.Bas Nieuwenhuizen2019-12-111-1/+1
| | | | | | | This is correct per the Vulkan spec format equivalence table. Fixes: f36b52740a0 "radv/android: Add android hardware buffer queries." Reviewed-by: Eric Anholt <[email protected]>
* panfrost: Add PAN_MESA_DEBUG=syncTomeu Vizoso2019-12-117-7/+39
| | | | | | | | | | | Sometimes it's useful to get information about GPU faults in the console, so it's synchronized with other messages. This commit will cause Mesa to wait for completion and check if there are any faults raised by the GPU. Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]>
* iris: Create smaller program keys without legacy featuresKenneth Graunke2019-12-103-84/+183
| | | | | | | | | | | | | | | | | | | | | | | A lot of the brw_*_prog_key fields are for emulating features on legacy hardware that iris doesn't support. In particular, all of the texture swizzle fields take up a lot of space. These dead fields make hashing the shader keys more expensive than it ought to be. We introduce iris-specific keys with only the information we need, and translate them to brw keys when actually compiling new variants. This way, key comparisons can use the small keys. The size reductions are: VS: 328 bytes -> 8 bytes TCS: 312 bytes -> 24 bytes TES: 304 bytes -> 24 bytes GS: 284 bytes -> 8 bytes FS: 304 bytes -> 16 bytes CS: 280 bytes -> 4 bytes Scores for the Piglit drawoverhead microbenchmark case with a shader program change improve by roughly 30%. Reviewed-by: Eric Anholt <[email protected]>
* compiler/spirv: Fix uses of gnu struct = {} extensionPierre Moreau2019-12-111-1/+1
| | | | | | | Fixes: a24d6fbae60 ("meson: Add -Werror=gnu-empty-initializer to MSVC compat args") Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]> Tested-by: Vinson Lee <[email protected]> Signed-off-by: Pierre Moreau <[email protected]>
* util/u_thread: Restrict u_thread_get_time_nano on macOS.Vinson Lee2019-12-101-1/+1
| | | | | | | | | | | | | macOS does not have pthread_getcpuclockid. src/util/u_thread.h:156:4: error: implicit declaration of function 'pthread_getcpuclockid' is invalid in C99 [-Werror,-Wimplicit-function-declaration] pthread_getcpuclockid(thread, &cid); ^ Fixes: 4913215d145e ("util/u_thread: don't restrict u_thread_get_time_nano() to __linux__") Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2171 Signed-off-by: Vinson Lee <[email protected]> Acked-by: Eric Engestrom <[email protected]>
* tu: Move UBWC layout into fdl6_layout() and use that function.Eric Anholt2019-12-116-169/+112
| | | | | | | | This gets us shared non-UBWC layout code between gallium and turnip. Until I fix up the rest of gallium to handle UBWC mipmapping, we do the single-level UBWC setup in gallium as a fixup after layout. Reviewed-by: Kristian H. Kristensen <[email protected]>
* freedreno: Switch the 16-bit workaround to match what turnip does.Eric Anholt2019-12-111-4/+4
| | | | | | | Prevents regressions on argb1555 and rgb565 when making turnip use freedreno's layout. Reviewed-by: Kristian H. Kristensen <[email protected]>