Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
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 | |
2017-07-13 | mesa: add struct gl_spirv_module | Nicolai Hähnle | 5 | -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-13 | mesa: refuse to compile SPIR-V shaders or link mixed shaders | Nicolai Hähnle | 2 | -1/+28 | |
Note that gl_shader::CompileStatus will also indicate whether a shader has been successfully specialized. | |||||
2017-07-13 | mesa: add gl_shader::SpirVBinary and getter | Nicolai Hähnle | 2 | -0/+4 | |
2017-07-13 | mesa: add GL_ARB_gl_spirv boilerplate | Nicolai Hähnle | 10 | -0/+118 | |
2017-07-13 | glsl: use bitfield for options to lower_variable_index_to_cond_assign | Nicolai Hähnle | 5 | -39/+54 | |
This makes for a nicer interface than a list of booleans. | |||||
2017-07-13 | glsl: allow inputs in interface blocks in interpolateAt* | Nicolai Hähnle | 2 | -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-13 | radeonsi: strengthen the conditions for the SI tessellation primid fallback | Nicolai Hähnle | 2 | -6/+15 | |
TODO wait for confirmation TODO less stupid loop? Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101278 | |||||
2017-07-13 | nir/print: add const qualifiers to some more function arguments | Nicolai Hähnle | 2 | -5/+5 | |
2017-07-13 | WIP amd/addrtool | Nicolai Hähnle | 3 | -0/+725 | |
2017-07-13 | glsl: add operator new(mem_ctx) to glsl_type (UNUSED???) | Nicolai Hähnle | 1 | -0/+12 | |
2017-07-13 | util/bitset: add BITSET_LAST_BIT | Nicolai Hähnle | 1 | -0/+21 | |
2017-07-13 | util/bitset: add BITSET_AND and BITSET_AND_NOT | Nicolai Hähnle | 1 | -0/+32 | |
2017-07-13 | radeonsi: use ac_get_exec_mask for VOTE opcodes | Nicolai Hähnle | 1 | -2/+2 | |
2017-07-13 | ac: add ac_get_exec_mask helper function | Nicolai Hähnle | 2 | -0/+17 | |
TODO: this needs an optimization barrier to prevent hoisting / speculating | |||||
2017-07-13 | HACK dump bo list on submit error | Nicolai Hähnle | 1 | -3/+25 | |
2017-07-13 | WIP st/glsl_to_tgsi: track have_precise | Nicolai Hähnle | 1 | -0/+3 | |
See GL45-CTS.gpu_shader5.precise_qualifier and https://llvm.org/bugs/show_bug.cgi?id=31626. | |||||
2017-07-13 | st/glsl_to_tgsi: track whether we're visiting a precise assignment | Nicolai Hähnle | 1 | -0/+7 | |
Certain optimizations have to be disabled while evaluating the right-hand side expression. | |||||
2017-07-13 | gallium/radeon: add EarlyCSE pass | Nicolai Hähnle | 1 | -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-13 | egl: add support for EGL_MESA_drm_image_formats | Nicolai Hähnle | 2 | -1/+22 | |
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> | |||||
2017-07-13 | TODO ac/nir: implement load/store_input intrinsics for VS/PS | Nicolai Hähnle | 1 | -0/+66 | |
2017-07-13 | radeonsi: enable R600_DEBUG=nir for vertex and fragment shaders | Nicolai Hähnle | 3 | -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-13 | radeonsi: VS as ES/LS are not yet supported with R600_DEBUG=nir | Nicolai Hähnle | 1 | -0/+2 | |
2017-07-13 | radeonsi/nir: lower uniforms to UBO loads | Nicolai Hähnle | 1 | -0/+10 | |
2017-07-13 | ac/nir: implement load_frag_coord intrinsic | Nicolai Hähnle | 1 | -0/+10 | |
2017-07-13 | radeonsi/nir: lower txp instructions | Nicolai Hähnle | 1 | -0/+5 | |
2017-07-13 | ac/nir: pass ac_llvm_context to unpack_param | Nicolai Hähnle | 1 | -18/+18 | |
2017-07-13 | ac/nir,radeonsi: add and use ac_shader_abi::frag_pos | Nicolai Hähnle | 3 | -17/+26 | |
v2: update for LLVMValueRefs in ac_shader_abi | |||||
2017-07-13 | ac/nir,radeonsi: add and use ac_shader_abi::{ancillary,sample_coverage} | Nicolai Hähnle | 3 | -8/+10 | |
v2: update for LLVMValueRefs in ac_shader_abi | |||||
2017-07-13 | ac/nir,radv: move force_persample to ac_shader_info::force_persample | Nicolai Hähnle | 6 | -6/+10 | |
Avoid accessing radv-specific structures during the meat of NIR-to-LLVM translation. | |||||
2017-07-13 | radeonsi: tweak next-shader assumptions when streamout is used | Nicolai Hähnle | 1 | -5/+11 | |
VS with streamout is always a HW VS. | |||||
2017-07-13 | radeonsi: use new function ac_build_umin for edgeflag clamping | Nicolai Hähnle | 3 | -1/+9 | |
2017-07-13 | ac/nir: clamp shadow texture comparison value on VI | Nicolai Hähnle | 1 | -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-13 | ac/nir: add always_vector argument to ac_build_gather_values_extended | Nicolai Hähnle | 3 | -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-13 | ac/nir,radeonsi: add ac_shader_abi::front_face | Nicolai Hähnle | 3 | -7/+15 | |
v2: update for LLVMValueRefs in ac_shader_abi | |||||
2017-07-13 | ac/nir: pass ac_nir_context to emit_ddxy | Nicolai Hähnle | 1 | -15/+14 | |
Allocating the ddxy_lds is considered to be part of the API shader translation and not part of the ABI. | |||||
2017-07-13 | ac/nir: pass ac_nir_context to SSBO intrinsic handlers | Nicolai Hähnle | 1 | -55/+59 | |
2017-07-13 | radeonsi: implement and use ac_shader_abi::load_ssbo | Nicolai Hähnle | 2 | -11/+20 | |
2017-07-13 | radeonsi: make get_indirect_index globally visible | Nicolai Hähnle | 2 | -10/+13 | |