aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* mesa/gles3: add support for GL_EXT_shader_group_voteDave Airlie2020-06-164-1/+23
| | | | | | | | This is the GLES equivalent to ARB_shader_group_vote. Passes: KHR-GLES31.core.shader_group_vote.* Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5490>
* gallivm/cache: don't require a null terminator for cache data.Dave Airlie2020-06-161-1/+1
| | | | | | | | | | | | Fixes crashes seen with ./bin/egl_ext_device_base since cache support was added. Fixes: 4962d3e10733 ("gallivm: add cache interface to mcjit") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3118 Tested-by: Michel Dänzer <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5467>
* panfrost: Simplify AFBC format checkAlyssa Rosenzweig2020-06-151-11/+7
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5484>
* panfrost: Enable AFBC for RGB565Alyssa Rosenzweig2020-06-151-2/+9
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5484>
* panfrost: Correctly calculate tiled strideAlyssa Rosenzweig2020-06-151-7/+9
| | | | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Fixes: bde19c0e7ba ("panfrost: Fix tiled texture "stride"s on Bifrost") Tested-by: Christian Hewitt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5474>
* panfrost: Fix level_2Alyssa Rosenzweig2020-06-151-1/+1
| | | | | | | | We're not sure what this is but I've always seen it equal to levels. Signed-off-by: Alyssa Rosenzweig <[email protected]> Tested-by: Christian Hewitt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5474>
* panfrost: Update sampler view in Bifrost pathAlyssa Rosenzweig2020-06-151-0/+1
| | | | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Fixes: fafc305600c ("panfrost: Create a new sampler view bo when the layout changes") Tested-by: Christian Hewitt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5474>
* panfrost: Merge bifrost_bo/midgard_boAlyssa Rosenzweig2020-06-153-12/+10
| | | | | | | | | The content is difference but a BO is a BO. Let's reduce code repition between Midgard and Bifrost paths. Signed-off-by: Alyssa Rosenzweig <[email protected]> Tested-by: Christian Hewitt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5474>
* llvmpipe/setup: add planes for draw regions if no scissor.Dave Airlie2020-06-162-0/+8
| | | | | | | | | | | | | Some tests were using a 1x1 fb bound, with a 2x2 viewport, and all 4 pixels were getting rendered. Test if the fb bounds need planes added or not. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3101 v2: add lines support Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5394>
* turnip: simplify stage2 helpersJonathan Marek2020-06-151-43/+4
| | | | | Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5455>
* turnip: remove duplicated stage2opcode and stage2shaderdbJonathan Marek2020-06-153-98/+46
| | | | | | | Reduce 3 copies of this same logic into a single one. Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5455>
* aco: fix encoding of certain s_setreg_imm32_b32 instructionsRhys Perry2020-06-151-1/+3
| | | | | | | | | If the mode is too small, the operand will be an inline constant and the literal dword won't be written. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: improve check for moving temporaries out of fixed definitionsRhys Perry2020-06-151-1/+1
| | | | | | | | No fossil-db changes. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: allow GFX9 partial writes with instructions which use opselRhys Perry2020-06-151-1/+1
| | | | | | | | | | Some instructions such as v_mad_f16 can do partial writes on GFX9. No fossil-db changes. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: add more opcodes to can_swap_operandsRhys Perry2020-06-151-36/+53
| | | | | | | | | | fossil-db (Navi, fp16 enabled): Totals from 310 (0.24% of 127638) affected shaders: CodeSize: 1290508 -> 1289716 (-0.06%) Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: allow to swap operands for some 16-bit float instructionsSamuel Pitoiset2020-06-151-0/+15
| | | | | | | | No fossil-db changes. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: validate sub-dword pseudo instructionsRhys Perry2020-06-151-0/+18
| | | | | | | | No fossil-db changes. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: optimize 16-bit and 64-bit float comparisonsRhys Perry2020-06-151-36/+101
| | | | | | | | No fossil-db changes. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: copy-propagate constants through p_extract_vector/p_split_vectorRhys Perry2020-06-151-5/+24
| | | | | | | | | | | | fossil-db (Navi, fp16 enabled): Totals from 1 (0.00% of 127638) affected shaders: CodeSize: 4388 -> 4392 (+0.09%) VMEM: 465 -> 458 (-1.51%) Copies: 54 -> 55 (+1.85%) Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: improve 8/16-bit constantsRhys Perry2020-06-156-96/+244
| | | | | | | | | | | | | | | | fossil-db (Navi, fp16 enabled): Totals from 1 (0.00% of 127638) affected shaders: CodeSize: 4540 -> 4388 (-3.35%) Instrs: 861 -> 830 (-3.60%) Cycles: 3444 -> 3320 (-3.60%) VMEM: 489 -> 465 (-4.91%) SMEM: 107 -> 110 (+2.80%) SClause: 31 -> 30 (-3.23%) Copies: 58 -> 54 (-6.90%) Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: use 32-bit inline constants for 16-bit integer instructionsRhys Perry2020-06-151-7/+13
| | | | | | | | See https://reviews.llvm.org/D81841 Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: fix half_pi constant for 16-bit fsin/fcosRhys Perry2020-06-151-1/+2
| | | | | | | | | | This worked because the optimizer didn't consider that the 16-bit instruction would interpret the inline constant differently. This will change in the next commit. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: improve sub-dword check for sgpr/constant propagationRhys Perry2020-06-151-4/+9
| | | | | | | | | | p_create_vector can have sub-dword operands with a v1 definition. No fossil-db changes. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: create 16-bit input and output modifiersRhys Perry2020-06-151-22/+52
| | | | | | | | | | | | | fossil-db (Navi, fp16 enabled): Totals from 1 (0.00% of 127638) affected shaders: CodeSize: 4552 -> 4540 (-0.26%) Instrs: 863 -> 861 (-0.23%) Cycles: 3452 -> 3444 (-0.23%) VMEM: 490 -> 489 (-0.20%) Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: update comment about preserving fp16/fp64 denormalsRhys Perry2020-06-151-1/+2
| | | | | | Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: create 16-bit mad/fmaRhys Perry2020-06-152-9/+43
| | | | | | | | | | | | | | | | | fossil-db (Navi, fp16 enabled): Totals from 1 (0.00% of 127638) affected shaders: CodeSize: 4868 -> 4552 (-6.49%) Instrs: 956 -> 863 (-9.73%) Cycles: 3824 -> 3452 (-9.73%) VMEM: 504 -> 490 (-2.78%) SMEM: 109 -> 107 (-1.83%) VClause: 19 -> 20 (+5.26%) Copies: 54 -> 58 (+7.41%) PreVGPRs: 43 -> 41 (-4.65%) Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: try to use fma instead of mad when denormals are enabledRhys Perry2020-06-154-20/+54
| | | | | | | | | | v_mad_f32 doesn't support denormals but v_fma_f32 does. No fossil-db changes. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: create mads when signed zeros should be preservedRhys Perry2020-06-151-1/+1
| | | | | | | | | | | | This check was added because I thought v_mad_f32 didn't preserve the signess of zero, but I can't reproduce that and this isn't mentioned anywhere in LLVM. No fossil-db changes. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: add and set precise flagRhys Perry2020-06-155-3/+29
| | | | | | | | No fossil-db changes. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: use p_as_uniform in emit_vop1_instructionRhys Perry2020-06-151-41/+15
| | | | | | | | No fossil-db changes. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: improve code for f2{i,u}{8,16}Rhys Perry2020-06-151-13/+11
| | | | | | | | | | Use sub-dword definitions so that the RA can use SDWA No fossil-db changes. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* aco: use num_opcodes instead of last_opcodeRhys Perry2020-06-151-4/+4
| | | | | | | | No fossil-db changes. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
* nir: do not try to merge xfb-outputsErik Faye-Lund2020-06-151-0/+12
| | | | | | | | | | | | It's tricky to merge XFB-outputs correctly, because we need there to not be any overlaps when we get to `nir_gather_xfb_info_with_varyings` later on. We currently trigger an assert there if we end up merging here. So let's not even try. This is an optimization, and we can optimize this in safe cases later if needed. For now, let's play it safe. Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5329>
* turnip: drop linking libfreedreno_drmRob Clark2020-06-151-1/+0
| | | | | | | Now that it is no longer required. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5476>
* freedreno/ir3: move the libdrm dependency out of shared codeRob Clark2020-06-153-19/+45
| | | | | | | | | | | | | The only reason for this dependency was the fd_bo used for the uploaded shader. But this isn't used by turnip. Now that we've unified the cleanup path from gallium, it isn't hard to pull the fd_bo upload/free parts into ir3_gallium. This cleanup has the added benefit that the shader disk-cache will not have to deal with it. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5476>
* freedreno/ir3: unify shader create/delete pathsRob Clark2020-06-155-10/+9
| | | | | | | | | In particular, to move the fd_bo create/delete (which is unneeded by turnip) out of the shared ir3 code, it is useful to have a single delete path. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5476>
* zink: rework input/output location emissionMike Blumenkrantz2020-06-151-55/+107
| | | | | | | | | | | | | | | | glsl builtins that have no analog in spirv are emitted as regular varyings, which means they take up a slot. we need to ensure that there's no conflict between these regular varying slots (from user-defined varyings) and the glsl translated builtins, so we do that by "reserving" the max number of varying slots that can be used by a given stage, then remapping all glsl builtins with no spirv builtin to a packed layout location that can be consistent across stages sort of addresses mesa/mesa#3113 except now there's 10 fewer varying slots Reviewed-by: Erik Faye-Lund <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5432>
* zink: handle more glsl->spirv builtin translationMike Blumenkrantz2020-06-151-14/+22
| | | | | | | | this should be all of them, though the check for vertex shader stage needs to be changed to !fragment stage at some point Reviewed-by: Erik Faye-Lund <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5432>
* spirv: fix using OpSampledImage with OpUndef instead of OpType{Image,Sampler}Samuel Pitoiset2020-06-151-4/+22
| | | | | | | | | | | | | | This seems valid per the SPIR-V spec to use OpSampledImage with OpUndef instead of OpTypeImage or OpTypeSampler. When the image operand is undefined, SPIRV->NIR emits an undef instruction that can be removed later by the compiler. This fixes shader compilation crashes with Red Dead Redemption II. Cc: [email protected]> Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5230>
* pan/mdg: Precolour blend inputsAlyssa Rosenzweig2020-06-155-5/+26
| | | | | | | | | | | | | | | | | | | Instead of requiring an explicit unoptimized move, we can implicitly colour the blend input intrinsic to r0, where it will be preloaded; this is a simple task for RA, and does not conflict with anything. If there are multiple duplicate loads, the latter ones can just be simple moves which will be copypropped. We don't need to include a explicit synthetic load, since (scanning backwards) the read will cause the input to become live at the right time and the lack of an explicit write will keep it live from the beginning of the shader. So no need to make it more complicated than it needs to be. Saves a cycle in blend shaders. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5449>
* nvir: don't use designated initialisers in C++ codeYevhenii Kolesnikov2020-06-151-100/+100
| | | | | | | | | | | This feature only available since C++20. Fixes: fa0a241b335 ("nvir/nir: move nir options to codegen") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3114 Signed-off-by: Yevhenii Kolesnikov <[email protected]> Reviewed-by: Karol Herbst <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5430>
* ac: add ac_choose_spi_color_formats() to common codeSamuel Pitoiset2020-06-154-221/+147
| | | | | | | | It's similar between RADV and RadeonSI. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5436>
* freedreno/ir3: fix ir3_nir_move_varying_inputsJonathan Marek2020-06-141-10/+5
| | | | | | | | | | | | | | ir3_nir_move_varying_inputs is broken when there a load input outside of the first block which depends on the result of a previous load input. This simplification/rework avoids the problem, and should also be faster. Fixes this dEQP-VK test: dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_pixel_center.128_128_1.samples_2 Signed-off-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5465>
* intel/tools: make test aware of the meson test wrapperEric Engestrom2020-06-131-7/+32
| | | | | | | Suggested-by: Dylan Baker <[email protected]> Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5155>
* intel/tools: rewrite run-test.sh in pythonEric Engestrom2020-06-133-40/+69
| | | | | | | | | | | | | | Old script created files in the source directory, which is generally considered bad form. The rewrite to python instead of duct-taping around in the shell script goes towards the goal of only having cross-platform python scripts, which is also harder to make mistakes in than shell scripts. Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Sagar Ghuge <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5155>
* radv: update internal referenceErik Faye-Lund2020-06-131-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4630>
* iris: drop dead #include "config.h"Eric Engestrom2020-06-131-4/+0
| | | | | | | | | | There hasn't been a config.h in a long time (it was an artifact of the autotool build). Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5350>
* i965: drop dead #include "config.h"Eric Engestrom2020-06-131-4/+0
| | | | | | | | | | There hasn't been a config.h in a long time (it was an artifact of the autotool build). Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5350>
* intel/genxml: replace gen_sort_tags.py MIT licence with SPDX equivalentEric Engestrom2020-06-131-20/+1
| | | | | | | | Much more readable with the same information :) Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5362>
* intel/genxml: drop python 2 support for gen_sort_tags.pyEric Engestrom2020-06-131-4/+1
| | | | | | | | | Python 2 is dead and this script is only run by devs, all of which have had python3 available for basically forever. Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5362>