- 26 Apr, 2019 17 commits
-
-
coypoop authored
Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by:
Eric Engestrom <eric.engestrom@intel.com>
-
Tapani Pälli authored
Used same syntax as elsewhere with Mesa sources, verified result against MSVC with godbolt.org. fixes following warning with clang: warning: suggest braces around initialization of subobject v2: empty braces -> braces around subobject (Caio, Kristian) Signed-off-by:
Tapani Pälli <tapani.palli@intel.com> Reviewed-by:
Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Reviewed-by:
Kristian H. Kristensen <hoegsberg@google.com>
-
Kristian H. Kristensen authored
-
Alok Hota authored
Reviewed-by:
Bruce Cherniak <bruce.cherniak@intel.com>
-
Alok Hota authored
- Emulation of AVX512 built into SIMDLIB - Remove associated macros - Remove knobs controlling AVX512 and let emulation handle it - Refactor variable names for SIMD16 Reviewed-by:
Bruce Cherniak <bruce.cherniak@intel.com>
-
Alok Hota authored
- Use 8x2 tiling by default - Remove associated macros - Use SIMDLIB emulation for SIMD16 on SIMD8 hardware - Remove code rot in Load/StoreTile Reviewed-by:
Bruce Cherniak <bruce.cherniak@intel.com>
-
Tomasz Figa authored
If there is no last fence, due to no rendering happening yet, just create a new signaled fence and return it, to match the expectations of the EGL sync fence API. Fixes random "Could not create sync fence 0x3003" assertion failures from Skia on Android, coming from the following code: https://android.googlesource.com/platform/frameworks/base/+/master/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp#427 Reproducible especially with thread count >= 4. One could make the driver always keep the reference to the last fence, but: - the driver seems to explicitly destroy the fence whenever a rendering pass completes and changing that would require a significant functional change to the code. (Specifically, in lp_scene_end_rasterization().) - it still wouldn't solve the problem of an EGL sync fence being created and waited on without any rendering happening at all, which is also likely to happen with Android code pointed to in the commit. Therefore, the simple approach of always creating a fence is taken, similarly to other drivers, such as radeonsi. Tested with piglit llvmpipe suite with no regressions and following tests fixed: egl_khr_fence_sync conformance eglclientwaitsynckhr_flag_sync_flush eglclientwaitsynckhr_nonzero_timeout eglclientwaitsynckhr_zero_timeout eglcreatesynckhr_default_attributes eglgetsyncattribkhr_invalid_attrib eglgetsyncattribkhr_sync_status v2: - remove the useless lp_fence_reference() dance (Nicolai), - explain why creating the dummy fence is the right approach. Signed-off-by:
Tomasz Figa <tfiga@chromium.org> Reviewed-by:
Roland Scheidegger <sroland@vmware.com>
-
Emil Velikov authored
Currently if the timeout differs from 0, we'll end up with infinite wait... even if the user is perfectly clear they don't want that. Use the new lp_fence_timedwait() helper guarding both waits in an !lp_fence_signalled block like the rest of llvmpipe. Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Reviewed-by:
Roland Scheidegger <sroland@vmware.com>
-
Emil Velikov authored
The function is analogous to lp_fence_wait() while taking at timeout (ns) parameter, as needed for EGL fence/sync. v2: - use absolute UTC time, as per spec (Gustaw) - bail out on cnd_timedwait() failure (Gustaw) v3: - check count/rank under mutex (Gustaw) Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com> (v1) Reviewed-by:
Gustaw Smolarczyk <wielkiegie@gmail.com>
-
Emil Velikov authored
Currently we get normal GEM handles from PrimeFDToHandle, yet we close then with DUMB_CLOSE. Use GEM_CLOSE instead. Fixes: da997ebe ("vulkan: Add KHR_display extension using DRM [v10]") Cc: Jason Ekstrand <jason@jlekstrand.net> Cc: Keith Packard <keithp@keithp.com> Reviewed-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Signed-off-by:
Emil Velikov <emil.velikov@collabora.com>
-
Emil Velikov authored
As effectively required by the extension, we need to ensure we're master Currently drivers employ vendor specific solutions, which check if the device behind the fd is capable*, yet none of them do the master check. *In the radv case, if acceleration is available. Instead of duplicating the check in each driver, keep it where it's needed and used. Note this copies libdrm's drmIsMaster() to avoid depending on bleeding edge version of the library. v2: set the fd to -1 if not master (Bas) Fixes: da997ebe ("vulkan: Add KHR_display extension using DRM [v10]") Cc: Andres Rodriguez <andresx7@gmail.com> Cc: Jason Ekstrand <jason@jlekstrand.net> Cc: Keith Packard <keithp@keithp.com> Reported-by:
Andres Rodriguez <andresx7@gmail.com> Reviewed-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Signed-off-by:
Emil Velikov <emil.velikov@collabora.com>
-
Emil Velikov authored
The fd is -1, thus the block of if (fd != -1) close(fd) is dead code. Cc: Chad Versace <chadversary@chromium.org> Reviewed-by:
Chia-I Wu <olvaffe@gmail.com> Signed-off-by:
Emil Velikov <emil.velikov@collabora.com>
-
Jason Ekstrand authored
These have been popping up more and more with the OpenCL work and other bits causing extra conversions to/from 64-bit. Reviewed-by:
Karol Herbst <kherbst@redhat.com>
-
Jason Ekstrand authored
In 105002bd, we fixed a memory leak bug where we weren't properly destroying descriptor when destroying/resetting a descriptor pool. However, the only real leak that happened was that we we take a reference to the descriptor set layout in the descriptor set and we weren't dropping our reference. Everything else in the descriptor set is tied to the pool itself and doesn't need to be freed on a per-set basis. This commit changes the destroy/reset functions to only bother walking the list of sets to unref the layouts and otherwise we just assume that the whole-pool destroy/reset takes care of the rest. Now that we're doing more non-trivial things with descriptor sets such as allocating things with util_vma_heap, per-set destruction is starting to show up on perf traces. This takes reset back to where it's supposed to be as a cheap whole-pool operation. Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com>
-
Jason Ekstrand authored
In c520f4de, we chose to align the sizes of descriptor set buffers to 32 bytes. We have to align the descriptor set buffer to 32B so that it's valid for using with push constants. We align the size as well so we don't leave lots of holes with util_vma_heap_alloc. Unfortunately, we were only aligning it for alloc and not for free so we were still creating piles of holes when we delete descriptor sets. This causes terrible perf for the allocator once we've deleted piles of descriptor sets. This commit reworks the code so that we align the descriptor set buffer size to 32B for both alloc and free. The result is that it takes the new crucible vkResetDescriptorPool from 104.567719 to 2.898354 seconds. Fixes: c520f4de "anv: Add a concept of a descriptor buffer" Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110497Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com>
-
Dave Airlie authored
This fixes a case where we are expecting 64-bit but generate 32-bit consts and validate gets angry. Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Kenneth Graunke authored
-
- 25 Apr, 2019 23 commits
-
-
Marek Olšák authored
This fixes KHR-GL45.compute_shader.resources-max on radeonsi. Fixes: 4e1e8f68 "glsl: remember which SSBOs are not read-only and pass it to gallium" v2: use is_interface_array, protect again assertion failures in u_bit_consecutive Reviewed-by:
Dave Airlie <airlied@redhat.com>
-
Rob Clark authored
Forgot to update corresponding entries for desktop GL.. kinda wish we didn't have to update both GLES and GL tables. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Enables: OES_sample_shading OES_sample_variables OES_shader_multisample_interpolation Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
The compiler support for: OES_sample_shading OES_sample_variables OES_shader_multisample_interpolation Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
The so->inputs[] table is in units of vec4 Fixes: 7ff6705b freedreno/ir3: convert to "new style" frag inputs Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
There are a few places that we check if a shader stage input reg is used/valid (ie. not r63.x).. and there are about to be a bunch more. So add some helper macros for less open-coding. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Since this is what the value actually is. Cleanup the name before adding more different i,j related values for sample-shading. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
tex instruction can actually return 16b values. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Calculates i,j at specified offset within a pixel. A new load_size_ir3 intrinsic is used in conjunction with fddx/fddy to translate the offset into primitive space and adjust the i,j from load_barycentric_pixel accordingly. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
This lowers load_barycentric_at_sample to load_sample_pos_from_id plus load_barycentric_at_offset. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Pull in updates for sample shading. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
De-duplicate the "normal" and "flags" versions of the macros, and while at it go ahead and add "flags" versions for all the remaining macros, since we'll at least need INSTR1F in a following commit. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Couple more opcodes which don't take a sampler id as first arg. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
It takes an argument. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
And add corresponding enums for different sorts of varying interpolation. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Rob Clark authored
Update UABI header and add FD_PP_PGTABLE and FD_NR_FAULTS params. Robustness can be supported by a kernel which provides the new ABI if it also indicates that per-process pagetables are in use. Signed-off-by:
Rob Clark <robdclark@chromium.org>
-
Alyssa Rosenzweig authored
These fused NOT-ops could maybe help somehow...? Signed-off-by:
Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Alyssa Rosenzweig authored
This was previously thought to be inot, but it's actually a bit more general than that! :) Signed-off-by:
Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Alyssa Rosenzweig authored
We'll want to unify this with main copy prop (and extend to varyings), but that'll take more care to handle some special cases, so leave it as a stub pass for now. Signed-off-by:
Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Alyssa Rosenzweig authored
Signed-off-by:
Alyssa Rosenzweig <alyssa@rosenzweig.io>
-
Alyssa Rosenzweig authored
This extends copy propagation to respect output modifiers for ALU instructions, as well as potentially fixing some bugs related to looping (all dEQP loop tests pass). Signed-off-by:
Alyssa Rosenzweig <alyssa@rosenzweig.io>
-