summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-07-14radeonsi: bail out instead of crashing if the main shader part failed to compiletmpNicolai Hähnle1-0/+3
2017-07-14radeonsi: update a comment for merged shadersNicolai Hähnle1-1/+5
2017-07-14radeonsi/gfx9: always wrap GS and TCS in an if-blockNicolai Hähnle2-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-14radeonsi/gfx9: dump previous stage LLVM IR for merged shadersNicolai Hähnle1-0/+7
2017-07-14radeonsi/gfx9: fix vertex idx in ES with multiple waves per threadgroupNicolai Hähnle1-1/+6
2017-07-14squash! WIP amd/addrtoolNicolai Hähnle1-1/+1
2017-07-13nir/linker: remove dead variablesNicolai Hähnle3-1/+42
2017-07-13tmp linker TODO markerNicolai Hähnle1-1/+3
2017-07-13nir/linker: update NIR variables based on changes to their shadowsNicolai Hähnle1-0/+53
2017-07-13radeonsi: add enable_sisched driconf optionNicolai Hähnle3-0/+16
2017-07-13radeonsi: prepare for driver-specific driconf optionsNicolai Hähnle9-1/+58
2017-07-13pipe-loader: move configuration_query into drm_helperNicolai Hähnle3-37/+43
Having it inline is pointless anyway, since it's only called via a function pointer.
2017-07-13st/dri: implement v2 of DRI_ConfigOptionsNicolai Hähnle4-2/+55
2017-07-13pipe-loader: extract a standalone get_driver_descriptor helper functionNicolai Hähnle1-19/+30
2017-07-13pipe-loader: pass only the driver_name to pipe_loader_find_moduleNicolai Hähnle2-5/+5
2017-07-13gallium: add driconf options to pipe_screen_configNicolai Hähnle2-0/+5
2017-07-13gallium: move loading of drirc to pipe-loaderNicolai Hähnle10-58/+76
2017-07-13gallium: move driinfo XML to pipe_loaderNicolai Hähnle6-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-13gallium: add pipe_screen_config to screen_create functionsNicolai Hähnle37-88/+118
This allows a more generic mechanism for passing user configurations into drivers by accessing the dri options directly.
2017-07-13st/drm: add DRM_CONF_XML_OPTIONSNicolai Hähnle1-0/+2
Allow drivers to return the XML that describes the available config options.
2017-07-13util: add merge_driinfo.pyNicolai Hähnle1-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-13xmlconfig: move into src/utilNicolai Hähnle54-107/+117
2017-07-13xmlconfig: remove GL type dependenciesNicolai Hähnle1-6/+4
2017-07-13glx: use v2 of DRI_ConfigOptionsNicolai Hähnle1-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-13dri: define a version 2 of the DRI_ConfigOptions extensionNicolai Hähnle1-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-13radeonsi/si_shader_tgsi_setup: TODO markerNicolai Hähnle1-1/+4
2017-07-13DBG lots of debug printingNicolai Hähnle3-0/+70
2017-07-13mesa: store uniform location in gl_program_parameterNicolai Hähnle8-69/+71
This avoids name-based lookups after the initial linking, which should help with SPIR-V shaders where names are optional.
2017-07-13mesa/glspirv: fixup NIR passes during specializationNicolai Hähnle1-3/+3
2017-07-13mesa/glspirv: perform common lowering and optimization at specializationNicolai Hähnle1-0/+40
2017-07-13st/mesa: use NIR program path for SPIR-V shadersNicolai Hähnle2-3/+12
2017-07-13st/glsl_to_tgsi: extract IR lowering and optimization as separate functionNicolai Hähnle1-114/+124
Separate the NIR and IR code paths more cleanly.
2017-07-13st/nir: guard against NULL variable names (TODO: not necessary?)Nicolai Hähnle2-2/+2
They can occur with SPIR-V (but should really have been replaced with empty names...)
2017-07-13glsl/linker: add finalize_linked_nir_shaderNicolai Hähnle3-0/+17
For transferring shadow IR variables back to NIR in the future.
2017-07-13glsl/linker: don't run deadcode elimination for SPIR-V shadersNicolai Hähnle1-2/+4
It can only incorrectly remove IR shadow variables.
2017-07-13glsl/linker: prevent segfaults in packed varyings when linking SPIR-V shadersNicolai Hähnle1-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-13glsl/linker: skip optimisations for SPIR-V shadersNicolai Hähnle1-7/+9
There is no IR anyway, so the only thing they would achieve is to incorrectly remove variables.
2017-07-13glsl/linker: implement find_assignment_visitor for NIR shadersNicolai Hähnle4-28/+88
2017-07-13glsl/linker: find built-in variable assignments by location instead of nameNicolai Hähnle1-13/+17
This is faster and more compatible with SPIR-V.
2017-07-13glsl/linker: start linking NIR shaders for SPIR-VNicolai Hähnle4-10/+251
Create shadow IR variables for compatibility with existing linking steps.
2017-07-13mesa: add gl_linked_shader::nirNicolai Hähnle1-0/+1
2017-07-13spirv: translate default-block uniforms (TODO)Nicolai Hähnle2-3/+7
They are supported by SPIR-V for ARB_gl_spirv. TODO some comments
2017-07-13nir: initialize nir_variable::data.location to -1Nicolai Hähnle1-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-13glsl/linker: move some non-GLSL specific steps to link_shaderNicolai Hähnle1-53/+55
Those steps run after the actual intra-stage linking and will be re-used for SPIR-V linking.
2017-07-13st/mesa: enable ARB_gl_spirv (TODO)Nicolai Hähnle1-0/+4
TODO proper enable flag TODO features doc
2017-07-13DBG mesa: print NIR shader after specializationNicolai Hähnle1-0/+3
2017-07-13mesa: implement glSpecializeShaderARB (WIP)Nicolai Hähnle2-1/+95
2017-07-13mesa: add gl_constants::SpirV{Extensions,NIROptions}Nicolai Hähnle1-0/+6
For drivers to declare which SPIR-V features they support, and what compiler behavior they desire.
2017-07-13mesa: add gl_shader::nir and nir_entryNicolai Hähnle2-0/+13
2017-07-13mesa: implement SPIR-V loading in glShaderBinaryNicolai Hähnle3-4/+79