Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2017-07-14 | radeonsi: bail out instead of crashing if the main shader part failed to compiletmp | Nicolai Hähnle | 1 | -0/+3 | |
2017-07-14 | radeonsi: update a comment for merged shaders | Nicolai Hähnle | 1 | -1/+5 | |
2017-07-14 | radeonsi/gfx9: always wrap GS and TCS in an if-block | Nicolai Hähnle | 2 | -32/+45 | |
With merged ESGS shaders, the GS part of a wave may be empty, and the hardware gets confused if any GS messages are sent from that wave. Since S_SENDMSG is executed even when EXEC = 0, we have to wrap even non-monolithic GS shaders in an if-block, so that the entire shader and hence the S_SENDMSG instructions are skipped in empty waves. This change is not required for TCS/HS, but applying it there as well simplifies the code a bit. Fixes GL45-CTS.geometry_shader.rendering.rendering.* Cc: mesa-stable@lists.freedesktop.org | |||||
2017-07-14 | radeonsi/gfx9: dump previous stage LLVM IR for merged shaders | Nicolai Hähnle | 1 | -0/+7 | |
2017-07-14 | radeonsi/gfx9: fix vertex idx in ES with multiple waves per threadgroup | Nicolai Hähnle | 1 | -1/+6 | |
2017-07-14 | squash! WIP amd/addrtool | Nicolai Hähnle | 1 | -1/+1 | |
2017-07-13 | nir/linker: remove dead variables | Nicolai Hähnle | 3 | -1/+42 | |
2017-07-13 | tmp linker TODO marker | Nicolai Hähnle | 1 | -1/+3 | |
2017-07-13 | nir/linker: update NIR variables based on changes to their shadows | Nicolai Hähnle | 1 | -0/+53 | |
2017-07-13 | radeonsi: add enable_sisched driconf option | Nicolai Hähnle | 3 | -0/+16 | |
2017-07-13 | radeonsi: prepare for driver-specific driconf options | Nicolai Hähnle | 9 | -1/+58 | |
2017-07-13 | pipe-loader: move configuration_query into drm_helper | Nicolai Hähnle | 3 | -37/+43 | |
Having it inline is pointless anyway, since it's only called via a function pointer. | |||||
2017-07-13 | st/dri: implement v2 of DRI_ConfigOptions | Nicolai Hähnle | 4 | -2/+55 | |
2017-07-13 | pipe-loader: extract a standalone get_driver_descriptor helper function | Nicolai Hähnle | 1 | -19/+30 | |
2017-07-13 | pipe-loader: pass only the driver_name to pipe_loader_find_module | Nicolai Hähnle | 2 | -5/+5 | |
2017-07-13 | gallium: add driconf options to pipe_screen_config | Nicolai Hähnle | 2 | -0/+5 | |
2017-07-13 | gallium: move loading of drirc to pipe-loader | Nicolai Hähnle | 10 | -58/+76 | |
2017-07-13 | gallium: move driinfo XML to pipe_loader | Nicolai Hähnle | 6 | -39/+45 | |
We will switch to the pipe_loader loading the configuration options, so that they can be passed to the driver independently of the state tracker. Put the description into its own file so that it can be merged easily with driver-specific options in future commits. | |||||
2017-07-13 | gallium: add pipe_screen_config to screen_create functions | Nicolai Hähnle | 37 | -88/+118 | |
This allows a more generic mechanism for passing user configurations into drivers by accessing the dri options directly. | |||||
2017-07-13 | st/drm: add DRM_CONF_XML_OPTIONS | Nicolai Hähnle | 1 | -0/+2 | |
Allow drivers to return the XML that describes the available config options. | |||||
2017-07-13 | util: add merge_driinfo.py | Nicolai Hähnle | 1 | -0/+222 | |
This tool merges driinfo XML that is built using DRI_CONF_xxx macros. The intention is to merge together state-tracker options with driver-specific options. | |||||
2017-07-13 | xmlconfig: move into src/util | Nicolai Hähnle | 54 | -107/+117 | |
2017-07-13 | xmlconfig: remove GL type dependencies | Nicolai Hähnle | 1 | -6/+4 | |
2017-07-13 | glx: use v2 of DRI_ConfigOptions | Nicolai Hähnle | 1 | -14/+99 | |
Most of the change is concerned with avoiding memory leaks, since v2 of the DRI extension returns a malloc'ed string. This also allows us to resolve the long-standing issue of keeping drivers loaded when returning from glXGetDriverConfig. | |||||
2017-07-13 | dri: define a version 2 of the DRI_ConfigOptions extension | Nicolai Hähnle | 1 | -2/+18 | |
The new function is defined to return a malloc'ed pointer. In the following patches, this helps avoid leaking library handles when pipe drivers are linked dynamically. It also allows us to generate the XML string on the fly in the future. | |||||
2017-07-13 | radeonsi/si_shader_tgsi_setup: TODO marker | Nicolai Hähnle | 1 | -1/+4 | |
2017-07-13 | DBG lots of debug printing | Nicolai Hähnle | 3 | -0/+70 | |
2017-07-13 | mesa: store uniform location in gl_program_parameter | Nicolai Hähnle | 8 | -69/+71 | |
This avoids name-based lookups after the initial linking, which should help with SPIR-V shaders where names are optional. | |||||
2017-07-13 | mesa/glspirv: fixup NIR passes during specialization | Nicolai Hähnle | 1 | -3/+3 | |
2017-07-13 | mesa/glspirv: perform common lowering and optimization at specialization | Nicolai Hähnle | 1 | -0/+40 | |
2017-07-13 | st/mesa: use NIR program path for SPIR-V shaders | Nicolai Hähnle | 2 | -3/+12 | |
2017-07-13 | st/glsl_to_tgsi: extract IR lowering and optimization as separate function | Nicolai Hähnle | 1 | -114/+124 | |
Separate the NIR and IR code paths more cleanly. | |||||
2017-07-13 | st/nir: guard against NULL variable names (TODO: not necessary?) | Nicolai Hähnle | 2 | -2/+2 | |
They can occur with SPIR-V (but should really have been replaced with empty names...) | |||||
2017-07-13 | glsl/linker: add finalize_linked_nir_shader | Nicolai Hähnle | 3 | -0/+17 | |
For transferring shadow IR variables back to NIR in the future. | |||||
2017-07-13 | glsl/linker: don't run deadcode elimination for SPIR-V shaders | Nicolai Hähnle | 1 | -2/+4 | |
It can only incorrectly remove IR shadow variables. | |||||
2017-07-13 | glsl/linker: prevent segfaults in packed varyings when linking SPIR-V shaders | Nicolai Hähnle | 1 | -7/+22 | |
We could actually disable (most?) of lower_packed_varyings entirely, because SPIR-V mandates explicit locations for varyings. Anyway, we don't have a main function in the IR, so skip the corresponding insertions. | |||||
2017-07-13 | glsl/linker: skip optimisations for SPIR-V shaders | Nicolai Hähnle | 1 | -7/+9 | |
There is no IR anyway, so the only thing they would achieve is to incorrectly remove variables. | |||||
2017-07-13 | glsl/linker: implement find_assignment_visitor for NIR shaders | Nicolai Hähnle | 4 | -28/+88 | |
2017-07-13 | glsl/linker: find built-in variable assignments by location instead of name | Nicolai Hähnle | 1 | -13/+17 | |
This is faster and more compatible with SPIR-V. | |||||
2017-07-13 | glsl/linker: start linking NIR shaders for SPIR-V | Nicolai Hähnle | 4 | -10/+251 | |
Create shadow IR variables for compatibility with existing linking steps. | |||||
2017-07-13 | mesa: add gl_linked_shader::nir | Nicolai Hähnle | 1 | -0/+1 | |
2017-07-13 | spirv: translate default-block uniforms (TODO) | Nicolai Hähnle | 2 | -3/+7 | |
They are supported by SPIR-V for ARB_gl_spirv. TODO some comments | |||||
2017-07-13 | nir: initialize nir_variable::data.location to -1 | Nicolai Hähnle | 1 | -0/+2 | |
SPIR-V for ARB_gl_spirv seems to allow default-block uniforms without location, and so this guarantees that we default to "no explicit location". | |||||
2017-07-13 | glsl/linker: move some non-GLSL specific steps to link_shader | Nicolai Hähnle | 1 | -53/+55 | |
Those steps run after the actual intra-stage linking and will be re-used for SPIR-V linking. | |||||
2017-07-13 | st/mesa: enable ARB_gl_spirv (TODO) | Nicolai Hähnle | 1 | -0/+4 | |
TODO proper enable flag TODO features doc | |||||
2017-07-13 | DBG mesa: print NIR shader after specialization | Nicolai Hähnle | 1 | -0/+3 | |
2017-07-13 | mesa: implement glSpecializeShaderARB (WIP) | Nicolai Hähnle | 2 | -1/+95 | |
2017-07-13 | mesa: add gl_constants::SpirV{Extensions,NIROptions} | Nicolai Hähnle | 1 | -0/+6 | |
For drivers to declare which SPIR-V features they support, and what compiler behavior they desire. | |||||
2017-07-13 | mesa: add gl_shader::nir and nir_entry | Nicolai Hähnle | 2 | -0/+13 | |
2017-07-13 | mesa: implement SPIR-V loading in glShaderBinary | Nicolai Hähnle | 3 | -4/+79 | |