aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* nir/lower_alu_to_scalar: Support lowering 8- and 16-bit reduce opsNeil Roberts2019-11-201-0/+8
| | | | | Reviewed-by: Rob Clark <robdclark@gmail.com> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
* nir: Add a 8-bit bool typeNeil Roberts2019-11-202-2/+12
| | | | | | | | Adds nir_type_bool8 as well as 8-bit versions of all the bool opcodes. Reviewed-by: Rob Clark <robdclark@gmail.com> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
* nir: Add a 16-bit bool typeNeil Roberts2019-11-202-1/+11
| | | | | | | | Adds nir_type_bool16 as well as 16-bit versions of all the bool opcodes. Reviewed-by: Rob Clark <robdclark@gmail.com> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
* nir/opcodes: Add a helper function to generate reduce opcodesNeil Roberts2019-11-201-17/+15
| | | | | | | | | Adds binop_reduce_all_sizes which generates both 1-bit and 32-bit versions of the reduce operation. This reduces the code duplication a bit and will make it easier to later add 16-bit versions as well. Reviewed-by: Rob Clark <robdclark@gmail.com> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
* nir/opcodes: Add a helper function to generate the comparison binopsNeil Roberts2019-11-201-20/+14
| | | | | | | | | | Adds binop_compare_all_sizes which generates both 1-bit and 32-bit versions of the comparison operation. This reduces the code duplication a bit and will make it easier to later add 16-bit versions as well. Reviewed-by: Rob Clark <robdclark@gmail.com> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
* radv: enable VK_KHR_shader_subgroup_extended_types on GFX6-GFX7Samuel Pitoiset2019-11-201-1/+1
| | | | | | | | Most of DEQP-VK.subgroups are skipped because 16-bit float aren't supported but others pass. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
* v3d: adds an extra MOV for any sig.ld*Alejandro Piñeiro2019-11-201-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | Specifically when we are in non-uniform control flow, as we would need to set the condition for the last instruction. If (for example) a image atomic load stores directly their value on a NIR register, last_inst would be a nop, and would fail when set the condition. Fixes piglit test: spec/glsl-es-3.10/execution/cs-ssbo-atomic-if-else-2.shader_test Fixes: 6281f26f064ada ("v3d: Add support for shader_image_load_store.") v2: (Changes suggested by Eric Anholt) * Cover all sig.ld* signals, not just ldunif and ldtmu, as all of them have the same restriction. * Update comment explaining why we add a MOV in that case * Tweak commit message. v3: * Drop extra set of parens (Eric) * Add missing ld signal to is_ld_signal to fix shader-db regression. Reviewed-by: Eric Anholt <eric@anholt.net>
* v3d: Fix predication with atomic image operationsJose Maria Casanova Crespo2019-11-201-0/+12
| | | | | | | | | | | | | Fixes dEQP test: dEQP-GLES31.functional.synchronization.inter_call.with_memory_barrier.image_atomic_multiple_interleaved_write_read Fixes piglit test: spec/glsl-es-3.10/execution/cs-image-atomic-if-else.shader_test Fixes: 6281f26f064ada ("v3d: Add support for shader_image_load_store.") Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Reviewed-by: Eric Anholt <eric@anholt.net>
* panfrost: Don't print the midgard_blend_rt structs on SFBDTomeu Vizoso2019-11-201-1/+1
| | | | | Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
* panfrost: Rework buffers in SFBDTomeu Vizoso2019-11-201-40/+39
| | | | | | | | Support cases such as depth-only renders and only set stencil buffers when needed, to match the blob's behaviour. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
* panfrost: Just print tiler fields as-is for Tx20Tomeu Vizoso2019-11-201-6/+48
| | | | | | | | The tiler unit in these GPUs is quite different and we haven't reverse engineered enough of it yet to validate and pretty print it. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
* pan/midgard: Introduce quirks checksAlyssa Rosenzweig2019-11-205-10/+92
| | | | | | | | | | | | | Rather than open-coding checks on gpu_id in the compiler, let's track quirks applying to whatever we're compiling for, to allow us to manage the complexity of many heterogenous GPUs in the compiler. It was discovered that a workaround used on T720 is also required on T820 (and presumably T830), so let's fix this. This will also decrease friction as we continue improving T720 support. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
* mesa: enable ARB_shading_language_includeTimothy Arceri2019-11-201-1/+1
| | | | | | Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/999 Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: implement glCompileShaderIncludeARB()Timothy Arceri2019-11-201-3/+63
| | | | Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: add shader include lookup support for relative pathsTimothy Arceri2019-11-201-10/+75
| | | | Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: add support cursor support for relative path shader includesTimothy Arceri2019-11-205-1/+55
| | | | | | | | | | | | | This will allow us to continue searching the current path for relative shader includes. From the ARB_shading_language_include spec: "If it is quoted with double quotes in a previously included string, then the first search point will be the tree location where the previously included string had been found." Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* glsl: delay compilation skip if shader contains an includeTimothy Arceri2019-11-201-6/+40
| | | | | | | | If the shader contains an include when need to first run the preprocessor before deciding if we can skip compilation based on the shader cache. Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* glsl: add can_skip_compile() helperTimothy Arceri2019-11-201-10/+20
| | | | | | We will reuse this in the following commit. Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* glsl: error if #include used while extension is disabledTimothy Arceri2019-11-202-0/+15
| | | | | | In other words make sure the shader does this: Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* glsl: add preprocessor #include supportTimothy Arceri2019-11-207-4/+194
| | | | Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* glsl: pass gl_context to glcpp_parser_create()Timothy Arceri2019-11-203-7/+7
| | | | | | This is a small tidy up and will be useful in the following commit. Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* glsl: add ARB_shading_language_include support to #lineTimothy Arceri2019-11-207-8/+80
| | | | | | | | | | | | | | | | | | | | | | From the ARB_shading_language_include spec: "#line must have, after macro substitution, one of the following forms: #line <line> #line <line> <source-string-number> #line <line> "<path>" where <line> and <source-string-number> are constant integer expressions and <path> is a valid string for a path supplied in the #include directive. After processing this directive (including its new-line), the implementation will behave as if it is compiling at line number <line> and source string number <source-string-number> or <path> path. Subsequent source strings will be numbered sequentially, until another #line directive overrides that numbering." Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: implement glDeleteNamedStringARB()Timothy Arceri2019-11-201-0/+25
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: split _mesa_lookup_shader_include() in twoTimothy Arceri2019-11-201-4/+14
| | | | | | | | The new local function lookup_shader_include() will be used by glDeleteNamedStringARB() in the following patch. Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: implement glGetNamedStringivARB()Timothy Arceri2019-11-201-0/+28
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: implement glIsNamedStringARB()Timothy Arceri2019-11-201-1/+14
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: make error checking optional in _mesa_lookup_shader_include()Timothy Arceri2019-11-202-10/+19
| | | | | | | | | This will be usefull when implementing glIsNamedStringARB() which doesn't do error checking, it just returns false for invalid lookups instead. Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: implement glGetNamedStringARB()Timothy Arceri2019-11-201-0/+22
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: add glNamedStringARB() supportTimothy Arceri2019-11-201-0/+59
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: add copy_string() helperTimothy Arceri2019-11-201-0/+20
| | | | | | | | This will be used by the various ARB_shading_language_include functions in the following patches. Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: add _mesa_lookup_shader_include() helperTimothy Arceri2019-11-202-0/+37
| | | | | | | This will be used both by the glsl compiler and the GL API. Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: add helper to validate tokenise shader include pathTimothy Arceri2019-11-201-0/+82
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: add ARB_shading_language_include infrastructure to gl_shared_stateTimothy Arceri2019-11-204-0/+77
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* glsl: add infrastructure for ARB_shading_language_includeTimothy Arceri2019-11-203-0/+4
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* mesa: add ARB_shading_language_include stubsTimothy Arceri2019-11-206-7/+115
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Witold Baryluk <witold.baryluk@gmail.com>
* radv: Do not change scratch settings while shaders are active.Bas Nieuwenhuizen2019-11-204-55/+105
| | | | | | | | | | | When the scratch ringbuffer settings are changed, the shader unit has to be idle or we will have shaders using old and new settings. That combination is not supported on the HW (likely the offset is ringbuffer idx * WAVESIZE * 1024). CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
* turnip: Drop the copy of the formats table.Eric Anholt2019-11-196-738/+83
| | | | | | | | | | | | | | | | | Now that we can (mostly) generate a pipe format for a VkFormat, use that to answer queries about formats. This will let us refactor the freedreno format table surface layout code to be shared between gallium and vulkan. This causes us to expose fewer formats for now (on a 1/100 CTS run I'm doing, skips go from 3671 to 3835 out of 5145 tests). Fails stay about the same (478 -> 434, but the run is pretty flaky and we're doing fewer tests now). v2: Rebase on master, throw a finishme on missing vk-to-pipe formats that tu used to support. Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> (v1) Reviewed-by: Jonathan Marek <jonathan@marek.ca>
* util: Add a mapping from VkFormat to PIPE_FORMAT.Eric Anholt2019-11-193-0/+262
| | | | | | | I'm planning on using this from radv and tu for queries about formats. Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Jonathan Marek <jonathan@marek.ca>
* winsys/amdgpu: detect noop dependencies on the same ring correctlyMarek Olšák2019-11-191-6/+9
| | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
* ac: fill num_rings for remaining IPsMarek Olšák2019-11-192-4/+23
| | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
* ac: add radeon_info::num_rings and move ring_type to amd_family.hMarek Olšák2019-11-1910-39/+29
| | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
* nir: don't use GLenum16 in nir.hMarek Olšák2019-11-191-2/+1
| | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
* nir: move data.descriptor_set above data.index for better packingMarek Olšák2019-11-191-4/+4
| | | | | | 4 bytes down Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
* glsl_to_nir: rename image_access to mem_accessMarek Olšák2019-11-191-12/+12
| | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
* nir/print: only print image.format for image variablesMarek Olšák2019-11-191-44/+46
| | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
* nir: move data.image.access to data.accessMarek Olšák2019-11-1916-34/+35
| | | | | | The size of the data structure doesn't change. Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
* st/mesa: call nir_serialize only once per shaderMarek Olšák2019-11-193-22/+25
| | | | | | It was called twice. Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
* st/mesa: keep serialized NIR instead of nir_shader in st_programMarek Olšák2019-11-194-11/+69
| | | | | | | | | | This decreases memory usage, because serialized NIR is more compact. If shader_has_one_variant is true and the shader is uncached, the first variant is created from nir_shader, otherwise the first variant and all other variants are created from serialized NIR. Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
* st/mesa: call nir_sweep in st_finalize_nirMarek Olšák2019-11-192-2/+3
| | | | | This is invoked sooner before (pre-)compiling the first variant and is also applied to fixed-func and ARB programs.
* st/mesa: subclass st_vertex_program for VP-specific membersMarek Olšák2019-11-199-80/+92
| | | | | | | Inheritance: gl_program -> st_program -> st_vertex_program Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>