aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* panfrost: Set 0x10 bit on mali_shader_meta.unknown2_4 on T720Tomeu Vizoso2019-11-062-7/+3
| | | | | | | | | Testing shows that it's needed. Also remove ctx->is_t6xx as it was the last use of it. Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]>
* panfrost: Add checksum fields to SFBD descriptorTomeu Vizoso2019-11-063-1/+22
| | | | | | | During tests on T720, these fields were discovered. Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]>
* zink: do advertize integer support in shadersErik Faye-Lund2019-11-061-1/+3
| | | | | | This is supported, so let's correct this. Signed-off-by: Erik Faye-Lund <[email protected]>
* zink/spirv: implement ball_fequal[2-4]Erik Faye-Lund2019-11-061-0/+12
|
* zink/spirv: implement ball_iequal[2-4]Erik Faye-Lund2019-11-061-0/+12
|
* zink/spirv: implement bany_inequal[2-4]Erik Faye-Lund2019-11-061-0/+12
|
* zink/spirv: implement bany_fnequal[2-4]Erik Faye-Lund2019-11-061-0/+12
|
* zink/spirv: support loading bool constantsErik Faye-Lund2019-11-061-5/+21
| | | | Seems I missed this before; let's add support for this.
* zink/spirv: drop temp-array for component-countErik Faye-Lund2019-11-061-6/+3
|
* zink: use u_blitter when format-reinterpretingErik Faye-Lund2019-11-061-0/+10
|
* zink: always allow sampling of imagesErik Faye-Lund2019-11-061-4/+3
| | | | This is required if we're going to blit from/to it using u_blitter.
* zink: transition resources before resolvingErik Faye-Lund2019-11-061-0/+8
|
* zink: disable fragment-shader texture-lodErik Faye-Lund2019-11-061-0/+2
| | | | | | | | We don't support nir_texop_txd, which is required by this cap. So let's disable it for now. Signed-off-by: Erik Faye-Lund <[email protected]> Fixes: 8d46e35d16e ("zink: introduce opengl over vulkan")
* zink: make sure src image is transfer-src-optimalDuncan Hopkins2019-11-061-0/+4
| | | | Fixes: d2bb63c8d4c ("zink: Use optimal layout instead of general. Reduces valid layer warnings. Fixes RADV image noise.")
* zink: do not advertize coherent mappingErik Faye-Lund2019-11-061-1/+1
| | | | | | | We do not support them yet, so let's not pretend. Signed-off-by: Erik Faye-Lund <[email protected]> Fixes: 8d46e35d16e ("zink: introduce opengl over vulkan")
* zink: always allow mutating the formatErik Faye-Lund2019-11-061-2/+3
| | | | | | | | There's no good way to know if a texture-view will be created, so we just have to accept it for all resources. Signed-off-by: Erik Faye-Lund <[email protected]> Fixes: 8d46e35d16e ("zink: introduce opengl over vulkan")
* zink: use actual format for render-passErik Faye-Lund2019-11-061-3/+4
| | | | | | | | We should use the format derived from the image-view here, not from the image itselt. Otherwise, we'll end up with incompatible render-passes. Signed-off-by: Erik Faye-Lund <[email protected]> Fixes: 8d46e35d16e ("zink: introduce opengl over vulkan")
* radeonsi: fix shader disk cache keyPierre-Eric Pelloux-Prayer2019-11-061-2/+3
| | | | | | | Use unsigned values otherwise signed extension will produce a 64 bits value where the 32 left-most bits are 1. Fixes: 2afeed30101 ("radeonsi: tell the shader disk cache what IR is used")
* radv: implement VK_EXT_subgroup_size_controlSamuel Pitoiset2019-11-065-3/+59
| | | | | | | | | | | | | | | | This extension allows to control the subgroup size by allowing a varying subgroup size and also specifying a required subgroup size. This implementation only allows to specify a required subgroup size for compute shaders because there is some caveats with other shader stages (eg. NGG with geometry shader). This basically allows apps to use Wave32 for compute shaders. This extension is enabled for all chips but only GFX10 supports Wave32. ACO doesn't support it. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv: rely on shader's wavesize when computing NGG infoSamuel Pitoiset2019-11-061-1/+10
| | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv: determine shaders wavesize at pipeline levelSamuel Pitoiset2019-11-066-19/+28
| | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv: hardcode the number of waves for the GFX6 LS-HS bugSamuel Pitoiset2019-11-061-1/+1
| | | | | | | It's always 64. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: enable wave32 for compute based on shader's wavesizeSamuel Pitoiset2019-11-063-3/+7
| | | | | | | This will allow to change wavesize on-demand. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* nir: fix packing of nir_variableSamuel Pitoiset2019-11-061-2/+2
| | | | | | | | | | | | The maximum number of descriptor sets is indeed 32 but without the sign bit. The maximum number of bindings for RADV is way larger, keep it as 32-bit. Fixes: 96e6ef80d93 ("nir: pack the rest of nir_variable::data") Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* radv: fix 32-bit compiler warningsSamuel Pitoiset2019-11-061-3/+3
| | | | | | Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2031 Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv: add a note about perftest/debug optionsSamuel Pitoiset2019-11-061-0/+1
| | | | | | | | | | Now that all environment variables are documented, it would be appreciated if we can keep this up-to-date. [skip ci] Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* nir/serialize: pack nir_variable flagsMarek Olšák2019-11-051-13/+36
| | | | Reviewed-by: Connor Abbott <[email protected]>
* nir/serialize: store 32-bit object IDs instead of 64-bitMarek Olšák2019-11-051-28/+31
| | | | | | | | | | That means we have only 30 bits for object IDs, because 2 bits are sometimes used for something else. This decrease the uncompressed shader size for the biggest Borderlands 2 shader from 33.6 KB to 23.2 KB. (31% decrease) Reviewed-by: Connor Abbott <[email protected]>
* nir/serialize: don't expand 16-bit variable state slots to 32 bitsMarek Olšák2019-11-052-7/+5
| | | | | | the swizzle also needs only 16 bits Reviewed-by: Connor Abbott <[email protected]>
* nir: pack the rest of nir_variable::dataMarek Olšák2019-11-051-33/+34
| | | | Reviewed-by: Connor Abbott <[email protected]>
* radeonsi: keep serialized NIR instead of nir_shader in si_shader_selectorMarek Olšák2019-11-055-13/+65
| | | | | | | | | This decreases memory usage, because serialized NIR is more compact. The main shader part is compiled from nir_shader. Monolithic shader variants are compiled from nir_binary. Reviewed-by: Timothy Arceri <[email protected]>
* radeonsi: don't keep compute shader IR after compilationMarek Olšák2019-11-051-2/+5
| | | | | | | | not needed. We also need to free TGSI in the destroy function for the case when an app is terminated and si_create_compute_state_async is never executed because of util_queue_drop_job. Reviewed-by: Timothy Arceri <[email protected]>
* radeonsi: use IR SHA1 as the cache key for the in-memory shader cacheMarek Olšák2019-11-053-71/+55
| | | | | | instead of using whole IR binaries. This saves some memory. Reviewed-by: Timothy Arceri <[email protected]>
* lima: add support for gl_PointSizeVasily Khoruzhick2019-11-055-32/+90
| | | | | | | | | | | | | GP handles gl_PointSize similar to gl_Position, i.e. it needs separate buffer and it has special type in varying descriptors, also for indexed draw we need to emit special PLBU command to pass address of gl_PointSize buffer. Blob also clamps gl_PointSize to 1 .. 100 (as well as line width), so let's do the same. Reviewed-by: Andreas Baierl <[email protected]> Signed-off-by: Vasily Khoruzhick <[email protected]>
* mesa/imports: let the build system detect strtok_r()Eric Engestrom2019-11-051-1/+1
| | | | | | | | Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2013 Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Matt Turner <[email protected]> Tested-by: Prodea Alexandru-Liviu <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* meson: move the generic symbols check arguments to a common variableEric Engestrom2019-11-058-8/+8
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviwed-by: Dylan Baker <dylan@pnwbakers>
* meson: add variable to control the symbols checksEric Engestrom2019-11-058-8/+8
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviwed-by: Dylan Baker <dylan@pnwbakers>
* mesa: fix call to _mesa_lookup_vao_errPierre-Eric Pelloux-Prayer2019-11-051-1/+1
| | | | | | Fixes: 3e842a0b0ea ("mesa: rework _mesa_lookup_vao_err to allow usage from EXT_dsa") Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2055 Reviewed-by: Kenneth Graunke <[email protected]>
* meson: Add dep_glvnd to egl deps when building with glvndDylan Baker2019-11-051-1/+2
| | | | | | | | | | | Otherwise if glvnd is not installed systemwide, but only in a prefix, it's headers wont be found. This happens because if it's headers are in /usr/include/ then another dependence will provide the necessary -I arguments and compilation will work. Fixes: 035ec7a2bb2d5e413ac945b8f012185a0e187d5e ("meson: Add support for EGL glvnd") Acked-by: Eric Engestrom <[email protected]>
* util/u_endian: Add error checksDylan Baker2019-11-051-0/+6
| | | | As suggested by Eric Engestrom and Michel Dänzer.
* util: rename PIPE_ARCH_*_ENDIAN to UTIL_ARCH_*_ENDIANDylan Baker2019-11-0549-122/+122
| | | | | | | | | | | As requested by Tim. This was generated with: grep 'PIPE_ARCH_.*_ENDIAN' -rIl | xargs sed -ie 's@PIPE_ARCH_\(.*\)_ENDIAN@UTIL_ARCH_\1_ENDIAN@'g v2: - add this patch Reviewed-by: Eric Engestrom <[email protected]>
* gallium/osmesa: Use PIPE_ARCH_*_ENDIAN instead of little_endian functionDylan Baker2019-11-051-20/+15
| | | | Reviewed-by: Eric Engestrom <[email protected]>
* mesa/main: delete now unused _mesa_little_endianDylan Baker2019-11-051-12/+0
| | | | Reviewed-by: Eric Engestrom <[email protected]>
* mesa/swrast: replace instances of _mesa_little_endian with preprocessorDylan Baker2019-11-052-6/+5
| | | | Reviewed-by: Eric Engestrom <[email protected]>
* mesa/main: replace uses of _mesa_little_endian with preprocessorDylan Baker2019-11-056-21/+49
| | | | Reviewed-by: Eric Engestrom <[email protected]>
* util/u_endian: set PIPE_ARCH_*_ENDIAN to 1Dylan Baker2019-11-0541-104/+100
| | | | | | | | | | | | This will allow it to be used as a drop in replacement for _mesa_little_endian in a number of cases. v2: - Always define PIPE_ARCH_LITTLE_ENDIAN and PIPE_ARCH_BIG_ENDIAN, define the one that reflects the host system to 1 and the other to 0 - replace all uses of #ifdef, #ifndef, and #if defined() with #if and #if ! with PIPE_ARCH_*_ENDIAN Reviewed-by: Eric Engestrom <[email protected]>
* util/u_endian: Use _WIN32 instead of _MSC_VERDylan Baker2019-11-051-1/+1
| | | | | | | | | _WIN32 is defined by basically all windows compilers (MSVC, ICL, MinGW), wereas _MSC_VER is not defined by MinGW. Without this change MinGW falls through and doesn't define PIPE_ARCH at all, and is caught by some extra code in gallium. Reviewed-by: Eric Engestrom <[email protected]>
* dri/osmesa: use preprocessor for selecting endian code pathsDylan Baker2019-11-051-6/+9
| | | | Reviewed-by: Eric Engestrom <[email protected]>
* r100: Use preprocessor to select big vs little endian pathsDylan Baker2019-11-053-46/+51
| | | | Reviewed-by: Eric Engestrom <[email protected]>
* r200: use preprocessor for big vs little endian checksDylan Baker2019-11-052-45/+38
| | | | | | | Instead of using a function at runtime we can just build the right code for the right platform. Reviewed-by: Eric Engestrom <[email protected]>