summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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
2017-07-13mesa: add struct gl_spirv_moduleNicolai Hähnle5-0/+52
We track both the SpirVModule pointer and the SpirVBinary boolean flag in gl_shader, so that we can throw away the module after specialization.
2017-07-13mesa: refuse to compile SPIR-V shaders or link mixed shadersNicolai Hähnle2-1/+28
Note that gl_shader::CompileStatus will also indicate whether a shader has been successfully specialized.
2017-07-13mesa: add gl_shader::SpirVBinary and getterNicolai Hähnle2-0/+4
2017-07-13mesa: add GL_ARB_gl_spirv boilerplateNicolai Hähnle10-0/+118
2017-07-13glsl: use bitfield for options to lower_variable_index_to_cond_assignNicolai Hähnle5-39/+54
This makes for a nicer interface than a list of booleans.
2017-07-13glsl: allow inputs in interface blocks in interpolateAt*Nicolai Hähnle2-2/+23
Since interface blocks are simply considered groupings of input variables, this is allowed. var->data.must_be_shader_input is now determined on-the-fly after lowering interface blocks, since we don't want to disable varying packing for an entire block just because one input in it is used in interpolateAt*. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101378
2017-07-13radeonsi: strengthen the conditions for the SI tessellation primid fallbackNicolai Hähnle2-6/+15
TODO wait for confirmation TODO less stupid loop? Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101278
2017-07-13nir/print: add const qualifiers to some more function argumentsNicolai Hähnle2-5/+5
2017-07-13WIP amd/addrtoolNicolai Hähnle3-0/+725
2017-07-13glsl: add operator new(mem_ctx) to glsl_type (UNUSED???)Nicolai Hähnle1-0/+12
2017-07-13util/bitset: add BITSET_LAST_BITNicolai Hähnle1-0/+21
2017-07-13util/bitset: add BITSET_AND and BITSET_AND_NOTNicolai Hähnle1-0/+32
2017-07-13radeonsi: use ac_get_exec_mask for VOTE opcodesNicolai Hähnle1-2/+2
2017-07-13ac: add ac_get_exec_mask helper functionNicolai Hähnle2-0/+17
TODO: this needs an optimization barrier to prevent hoisting / speculating
2017-07-13HACK dump bo list on submit errorNicolai Hähnle1-3/+25
2017-07-13WIP st/glsl_to_tgsi: track have_preciseNicolai Hähnle1-0/+3
See GL45-CTS.gpu_shader5.precise_qualifier and https://llvm.org/bugs/show_bug.cgi?id=31626.
2017-07-13st/glsl_to_tgsi: track whether we're visiting a precise assignmentNicolai Hähnle1-0/+7
Certain optimizations have to be disabled while evaluating the right-hand side expression.
2017-07-13gallium/radeon: add EarlyCSE passNicolai Hähnle1-0/+1
This helps to get rid of all the back-and-forth casting with 64-bit ints and doubles, and so exposes more optimization opportunities. TODO test with shader-db
2017-07-13egl: add support for EGL_MESA_drm_image_formatsNicolai Hähnle2-1/+22
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-07-13TODO ac/nir: implement load/store_input intrinsics for VS/PSNicolai Hähnle1-0/+66
2017-07-13radeonsi: enable R600_DEBUG=nir for vertex and fragment shadersNicolai Hähnle3-1/+8
Also, disable geometry and tessellation shaders. Mixing and matching NIR and TGSI shaders should work (and I've tested it for the VS/PS interface), but geometry and tessellation requires VS-as-ES/LS, which isn't implemented yet for NIR.
2017-07-13radeonsi: VS as ES/LS are not yet supported with R600_DEBUG=nirNicolai Hähnle1-0/+2
2017-07-13radeonsi/nir: lower uniforms to UBO loadsNicolai Hähnle1-0/+10
2017-07-13ac/nir: implement load_frag_coord intrinsicNicolai Hähnle1-0/+10
2017-07-13radeonsi/nir: lower txp instructionsNicolai Hähnle1-0/+5
2017-07-13ac/nir: pass ac_llvm_context to unpack_paramNicolai Hähnle1-18/+18
2017-07-13ac/nir,radeonsi: add and use ac_shader_abi::frag_posNicolai Hähnle3-17/+26
v2: update for LLVMValueRefs in ac_shader_abi
2017-07-13ac/nir,radeonsi: add and use ac_shader_abi::{ancillary,sample_coverage}Nicolai Hähnle3-8/+10
v2: update for LLVMValueRefs in ac_shader_abi
2017-07-13ac/nir,radv: move force_persample to ac_shader_info::force_persampleNicolai Hähnle6-6/+10
Avoid accessing radv-specific structures during the meat of NIR-to-LLVM translation.
2017-07-13radeonsi: tweak next-shader assumptions when streamout is usedNicolai Hähnle1-5/+11
VS with streamout is always a HW VS.
2017-07-13radeonsi: use new function ac_build_umin for edgeflag clampingNicolai Hähnle3-1/+9
2017-07-13ac/nir: clamp shadow texture comparison value on VINicolai Hähnle1-1/+13
Needed for TC-compatible HTILE in radeonsi for test cases like piglit spec/arb_texture_rg/execution/fs-shadow2d-red-01.shader_test
2017-07-13ac/nir: add always_vector argument to ac_build_gather_values_extendedNicolai Hähnle3-19/+13
This simplifies a bunch of places that no longer need special treatment of value_count == 1. We rely on LLVM to optimize away the 1-element vector types. This fixes a bunch of bugs where 1-element arrays are indexed indirectly.
2017-07-13ac/nir,radeonsi: add ac_shader_abi::front_faceNicolai Hähnle3-7/+15
v2: update for LLVMValueRefs in ac_shader_abi
2017-07-13ac/nir: pass ac_nir_context to emit_ddxyNicolai Hähnle1-15/+14
Allocating the ddxy_lds is considered to be part of the API shader translation and not part of the ABI.
2017-07-13ac/nir: pass ac_nir_context to SSBO intrinsic handlersNicolai Hähnle1-55/+59
2017-07-13radeonsi: implement and use ac_shader_abi::load_ssboNicolai Hähnle2-11/+20
2017-07-13radeonsi: make get_indirect_index globally visibleNicolai Hähnle2-10/+13