aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* pan/bi: Fix DISCARD ops in disasmAlyssa Rosenzweig2020-05-041-6/+9
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* pan/bi: Disable CSEL4 emit for nowAlyssa Rosenzweig2020-05-041-0/+4
| | | | | | | | | | We need proper scheduling for 4-src ops to work, so for now disable condition fusing so we cap at 3-src at a performance penalty. A bit of a hack but I'd rather not build hacks into a scheduler that will be rewritten soon anyway. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* pan/bi: Fix incorrectly flipped swizzleAlyssa Rosenzweig2020-05-041-2/+2
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* pan/bi: Fix missing swizzleAlyssa Rosenzweig2020-05-041-0/+2
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* pan/bi: Fix double-abs flippingAlyssa Rosenzweig2020-05-041-1/+1
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* pan/bi: Set clause type for gl_FragCoord.zAlyssa Rosenzweig2020-05-041-0/+12
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* pan/bi: Lower gl_FragCoordAlyssa Rosenzweig2020-05-042-0/+86
| | | | | | | We accept a sysval and emit various forms for each component. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* pan/bi: Passthrough direct ld_var addressesAlyssa Rosenzweig2020-05-041-1/+4
| | | | | | | Don't bother wasting a constant. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* pan/bi: Print bad instruction on src packing failAlyssa Rosenzweig2020-05-041-2/+5
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* pan/bi: Futureproof COMBINE lowering against non-u32Alyssa Rosenzweig2020-05-041-2/+5
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* pan/bi: Abort on unhandled intrinsicsAlyssa Rosenzweig2020-05-041-1/+1
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* pan/bi: Abort on unknown op packingAlyssa Rosenzweig2020-05-041-7/+7
| | | | | | | We're stable enough this is better than just nop'ing it out. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* pan/bi: Add clause type for gl_FragCoord.zw loadAlyssa Rosenzweig2020-05-042-0/+2
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* panfrost: Setup gl_FragCoord as sysval on BifrostAlyssa Rosenzweig2020-05-042-3/+4
| | | | | | | ..rather than a varying. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
* etnaviv: do not use int filter when anisotropic filtering is usedChristian Gmeiner2020-05-044-12/+25
| | | | | | | | | | The blob does not use this combination. This change moves the decision if int filter gets used to state emit time. Fixes: 7aaa0e59086 ("etnaviv: add anisotropic filter support") Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Lucas Stach <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4872>
* etnaviv: fix SAMP_ANISOTROPY register valueChristian Gmeiner2020-05-041-2/+1
| | | | | | | | | | | This caused some serious problems like shredded output, ~1fps and GPU hungs. Fixes: 7aaa0e59086 ("etnaviv: add anisotropic filter support") Reported-by: Lukas F. Hartmann <[email protected]> Tested-by: Lukas F. Hartmann <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Lucas Stach <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4872>
* vulkan/wsi: Make wsi_swapchain inherit from vk_object_baseJason Ekstrand2020-05-044-26/+19
| | | | | | | | Reviewed-by: Lionel Landwerlin <[email protected]> Acked-by: Kristian H. Kristensen <[email protected]> Acked-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4690>
* vulkan: Add run-time object type asserts in handle castsJason Ekstrand2020-05-042-2/+22
| | | | | | | | Reviewed-by: Lionel Landwerlin <[email protected]> Acked-by: Kristian H. Kristensen <[email protected]> Acked-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4690>
* anv: Refactor setting descriptors with immutable samplerJason Ekstrand2020-05-041-9/+6
| | | | | | | Don't call anv_sampler_from_handle if the handle may be invalid. Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4690>
* vulkan,anv: Move the DEFINE_HANDLE_CASTS macros to vk_object.hJason Ekstrand2020-05-042-58/+85
| | | | | | | | | | | | | | | | | | We've already got these duplicated a bunch of places. They should really probably live in common code. The new versions take two more arguments: 1. The struct member which gets you from __driver_type to the vk_object_base. This requires drivers which use this to also use vk_object_base. 2. The VkObjectType enum which represents that object type. Reviewed-by: Lionel Landwerlin <[email protected]> Acked-by: Kristian H. Kristensen <[email protected]> Acked-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4690>
* vulkan,anv: Add a base object struct typeJason Ekstrand2020-05-0415-13/+160
| | | | | | | | Reviewed-by: Lionel Landwerlin <[email protected]> Acked-by: Kristian H. Kristensen <[email protected]> Acked-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4690>
* anv: Allocate CPU-side memory for eventsJason Ekstrand2020-05-041-9/+12
| | | | | | | | | | As discrete graphics looms, we really need to stop storing CPU data structures in GPU memory. One of the most egregious instances of this was VkEvent where we had a CPU data structure living inside a dynamic state pool allocation. Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4690>
* anv: Stop clflushing eventsJason Ekstrand2020-05-041-27/+0
| | | | | | | They're allocated out of the dynamic state pool which is snooped. Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4690>
* vulkan,anv: Add a common base object type for VkDeviceJason Ekstrand2020-05-0420-92/+185
| | | | | | | | | | | | We should keep this very minimal; I don't know that we need to go all struct gl_context on it. However, this gives us at least a tiny base on which we can start building some common functionality. Reviewed-by: Lionel Landwerlin <[email protected]> Acked-by: Kristian H. Kristensen <[email protected]> Acked-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4690>
* vulkan: Allow destroying NULL debug report callbacksJason Ekstrand2020-05-041-0/+3
| | | | | | | | | Fixes: 086cfa5652 "anv: implementation of VK_EXT_debug_report extension" Reviewed-by: Lionel Landwerlin <[email protected]> Acked-by: Kristian H. Kristensen <[email protected]> Acked-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4690>
* st/mesa: destroy only own program variants when program is releasedTapani Pälli2020-05-041-1/+3
| | | | | | | | | | | | Earlier commit tried to achieve this but actually did more. This makes sure the variants for other contexts continue to live. Fixes: de3d7dbed52 ("mesa/st: release variants for active programs before unref") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2865 Cc: [email protected] Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4831>
* radeonsi: fix export countPierre-Eric Pelloux-Prayer2020-05-041-9/+7
| | | | | | | Fixes: 17acff01a00 ("radeonsi: skip vs output optimizations for some outputs") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2877 Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4871>
* vtn/opencl: native sqrt supportErik Faye-Lund2020-05-041-0/+2
| | | | | | Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-By: Karol Herbst <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4811>
* vtn/opencl: native rsqrt supportErik Faye-Lund2020-05-041-0/+2
| | | | | | Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-By: Karol Herbst <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4811>
* vtn/opencl: native recip supportErik Faye-Lund2020-05-041-0/+2
| | | | | | Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-By: Karol Herbst <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4811>
* vtn/opencl: native powr supportErik Faye-Lund2020-05-041-0/+2
| | | | | | Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-By: Karol Herbst <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4811>
* vtn/opencl: native divide supportErik Faye-Lund2020-05-041-0/+2
| | | | | | Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-By: Karol Herbst <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4811>
* vtn/opencl: native variants of sin/cosErik Faye-Lund2020-05-041-0/+4
| | | | | | | | These obviously map directly to nir opcodes. Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-By: Karol Herbst <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4811>
* vtn/opencl: add native_tan-supportErik Faye-Lund2020-05-041-0/+3
| | | | | | Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-By: Karol Herbst <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4811>
* compiler/nir: move tan-calculation to helperErik Faye-Lund2020-05-042-2/+7
| | | | | | Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-By: Karol Herbst <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4811>
* mesa: check draw buffer completeness on glClearBufferfv/glClearBufferuivDmitriy Nester2020-05-041-0/+12
| | | | | | | | | | | | | | | | From OpenGL 4.6, section 9.4.4 "Effects of Framebuffer Completeness on Framebuffer Operations", page 332: "An INVALID_FRAMEBUFFER_OPERATION error is generated by attempts to render to or read from a framebuffer which is not framebuffer complete. This error is generated regardless of whether fragments are actually read from or written to the framebuffer. For example, it is generated when a rendering command is called and the framebuffer is incomplete, even if RASTERIZER_DISCARD is enabled." Signed-off-by: Dmytro Nester <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4833>
* Revert "ac/surface: remove RADEON_SURF_TC_COMPATIBLE_HTILE and assume it's ↵Marek Olšák2020-05-024-29/+22
| | | | | | | | | | | always set" This reverts commit f6d87ec8a908250af5e805c8042524ac360094a2. It breaks RADV. Fixes: f6d87ec8a908250af5e805c8042524ac360094a2 "ac/surface: remove RADEON_SURF_TC_COMPATIBLE_HTILE and assume it's always set" Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4864>
* i965: disable shadow batches when batch debugging.Dave Airlie2020-05-031-1/+5
| | | | | | | | | | If you want to dump batch state, it needs to have the relocs processed but the relocs don't get processed on the shadow batch. Choose debugging over speed here. Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4846>
* i965: add support for gen 5 pipelined pointers to dumpDave Airlie2020-05-031-1/+168
| | | | | | | I wanted to see inside these, so added support to the dumper. Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4846>
* radv: Extend tiling flags to 64-bit.Bas Nieuwenhuizen2020-05-021-1/+1
| | | | | | | | | SCANOUT is bit 63 .... Fixes: bfd9e7ff243 "radv: Use new scanout gfx9 metadata flag." Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2879 Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4859>
* aco: add message to static_assertRhys Perry2020-05-021-25/+25
| | | | | | | | | | | static_assert without a message is only supported with C++17 and later. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Fixes: c99107ece02b64916031883889b9e010c99e2435 ('aco: add explicit padding for all Instruction sub-structs') Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4850>
* aco: remove use of f-stringsRhys Perry2020-05-021-1/+1
| | | | | | | | | | f-strings require Python 3.6 but 3.5 is still maintained and used. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2839 Fixes: 2ab45f41 ("aco: implement sub-dword swaps") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4850>
* anv: Disable extensions based on Android versionsNataraj Deshpande2020-05-012-2/+93
| | | | | | | | | | | | | | | | | | | | This extends commit 2243f0cd for anv with additional extensions for Pie and Q versions. Fixes tests with 9_R11 CTS: dEQP-VK.api.info.android#no_unknown_extensions dEQP-VK.api.info.device#extensions. v2: Use snake_case function name (Jason Ekstrand) Drop Change-Id in commit (Kristian H. Kristensen) v3: Resolve meson-clang error for ANDROID_API_LEVEL. Signed-off-by: Nataraj Deshpande <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Acked-by: Tapani Pälli <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4827>
* anv: Limit vulkan version to 1.1 for AndroidNataraj Deshpande2020-05-011-1/+1
| | | | | | | | | | | | | | | | Current Android dessert versions such as Pie, Q reject vulkan version > 1.1. Clamp the vulkan versions to 1.1 for platforms running these Android desserts. Fixes android.graphics.cts.VulkanFeaturesTest and dEQP-VK.api.info.device#properties. v2: Limit version with '!ANDROID' (Eric Engestrom and Tapani Pälli) Signed-off-by: Nataraj Deshpande <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4781>
* iris: Implement ARB_compute_variable_group_sizeCaio Marcelo de Oliveira Filho2020-05-018-3/+69
| | | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Jordan Justen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4794>
* intel: Let drivers call brw_nir_lower_cs_intrinsics()Caio Marcelo de Oliveira Filho2020-05-014-2/+5
| | | | | | | | | | | | | | The motivating factor is: this lowering may cause nir_intrinsic_load_local_group_size intrinsics to be added to the shader, and by moving this around we make possible for the drivers to lower that intrinsic by themselves. Iris will do just that in a later patch for implementing variable group size. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Jordan Justen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4794>
* intel/fs: Add and use a new load_simd_width_intel intrinsicCaio Marcelo de Oliveira Filho2020-05-015-34/+76
| | | | | | | | | | | | | | | | | | | | | Intrinsic to get the SIMD width, which not always the same as subgroup size. Starting with a small scope (Intel), but we can rename it later to generalize if this turns out useful for other drivers. Change brw_nir_lower_cs_intrinsics() to use this intrinsic instead of a width will be passed as argument. The pass also used to optimized load_subgroup_id for the case that the workgroup fitted into a single thread (it will be constant zero). This optimization moved together with lowering of the SIMD. This is a preparation for letting the drivers call it before the brw_compile_cs() step. No shader-db changes in BDW, SKL, ICL and TGL. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Jordan Justen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4794>
* intel/fs: Add an option to lower variable group size in backendCaio Marcelo de Oliveira Filho2020-05-013-1/+11
| | | | | | | | | Adding this since Iris will handle variable group size parameters by itself. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Jordan Justen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4794>
* intel/fs: Clean up variable group size handling in backendCaio Marcelo de Oliveira Filho2020-05-014-11/+4
| | | | | | | | Just use the information from NIR shader_info. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Jordan Justen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4794>
* iris: Implement PIPE_FLUSH_DEFERRED support.Kenneth Graunke2020-05-011-6/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (Co-authored with Chris Wilson.) Frequently, games create fences and later check them with a timeout of 0 to see if that work has completed yet. They do not want the work to be flushed immediately upon fence creation. This is what PIPE_FLUSH_DEFERRED does - it inhibits the flush at fence creation time, but still guarantees that a flush will occur later on once fence_finish() is called. Since syncpts can only occur at batch boundaries, when deferring a flush, we have to wait for the syncpt at the end of the batch being constructed. This is later than desired, but safe if blocking. To avoid extra delays, we additionally insert a PIPE_CONTROL to write an availability bit at the exact point of the fence. We can poll this on the CPU, allowing us to check whether the fence has gone by, even if the batch hasn't completed. It can also let us skip kernel calls. Improves performance in Bioshock Infinite by 10% on Icelake GT2 on -ForceCompatLevel=5 settings. Thanks to Felix Degrood and Mark Janes for helping notice the extraneous stalls and batches, Marek Olšák for adding deferred flush support to Gallium to solve this issue, and Chris Wilson for reworking a lot of the internals of this work. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3802>