aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* glsl/ir: allow ir_call to handle subroutine callingDave Airlie2015-07-231-1/+20
| | | | | | | | | This adds a ir_variable which contains the subroutine uniform and an array rvalue for the deref of that uniform, these are stored in the ir_call and lowered later. Reviewed-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* glsl/ir: add subroutine information storage to ir_function (v1.1)Dave Airlie2015-07-234-1/+26
| | | | | | | | | | | We need to store two sets of info into the ir_function, if this is a function definition with a subroutine list (subroutine_def) or if it a subroutine prototype. v1.1: add some more documentation. Reviewed-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* mesa: add function to check if shader subroutines are enabled.Dave Airlie2015-07-231-0/+9
| | | | | | | | This checks if core profile and shader subroutine extension is enabled. Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* mesa: add inline conversion functions for ARB_shader_subroutine (v2)Dave Airlie2015-07-231-0/+101
| | | | | | | | | | | This handles converting the shader stages to the internal prefix along with the program resource interfaces. v2: add tess support Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* glsl: don't eliminate subroutine types.Dave Airlie2015-07-231-0/+3
| | | | | | | | This stops dead code from removing subroutines types, we need these for the queries to work properly. Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* glsl/types: add new subroutine type (v3.2)Dave Airlie2015-07-2313-0/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | This type will be used to store the name of subroutine types as in subroutine void myfunc(void); will store myfunc into a subroutine type. This is required to the parser can identify a subroutine type in a uniform decleration as a valid type, and also for looking up the type later. Also add contains_subroutine method. v2: handle subroutine to int comparisons, needed for lowering pass. v3: do subroutine to int with it's own IR operation to avoid hacking on asserts (Kayden) v3.1: fix warnings in this patch, fix nir, fix tgsi v3.2: fixup tests Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]> tests: fix warnings
* glsl: Make `subroutine` a reserved keywordChris Forbes2015-07-231-1/+1
| | | | | | | Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* dispatch_sanity: add shader subroutine to fix make checkDave Airlie2015-07-232-8/+21
| | | | | | | | Add the shader subroutine to the core only API list, and fixup dispatch_sanity to suit. Acked-by: Kenneth Graunke <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* glsl: Add extension plumbing and define for ARB_shader_subroutineChris Forbes2015-07-234-0/+7
| | | | | | | Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* mesa: Add glGet support for ARB_shader_subroutine implementation limitsChris Forbes2015-07-234-0/+20
| | | | | | | Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* mesa: Add extension tracking for arb_shader_subroutine (v2)Chris Forbes2015-07-233-1/+3
| | | | | | | | | v2: [airlied]: merge version check update. Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* glapi: Add ARB_shader_subroutine functions and enums (v2)Chris Forbes2015-07-233-1/+88
| | | | | | | | | v2: fix output="true" and LENGTH typo Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* mesa: Add stubs for ARB_shader_subroutine entrypointsChris Forbes2015-07-232-0/+95
| | | | | | | Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* dispatch_sanity.cpp: remove commented out tess entriesDave Airlie2015-07-231-2/+0
| | | | | | | These entries were put in the GL4.0 section, so removed the commented out ones. Signed-off-by: Dave Airlie <[email protected]>
* glsl/tests: fix varying_test since tess changes.Dave Airlie2015-07-231-1/+1
| | | | | | | This fixes make check since the tess changes. Tested-by: Michel Dänzer <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* i965: fix warning since tess merge.Dave Airlie2015-07-231-0/+2
| | | | Signed-off-by: Dave Airlie <[email protected]>
* radeonsi: enable tessellation, update GL3.txt & release notesMarek Olšák2015-07-233-4/+13
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: add scratch buffer support for tessellation shadersMarek Olšák2015-07-231-8/+28
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: update invariant registers for tessellationMarek Olšák2015-07-231-2/+6
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: add assertions into draw_vbo and check tessellationMarek Olšák2015-07-231-1/+7
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: set the rasterization primitive type for tessellationMarek Olšák2015-07-231-0/+3
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: set VGT_LS_HS_CONFIG for tessellationMarek Olšák2015-07-233-4/+28
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: update IA_MULTI_VGT_PARAM for tessellationMarek Olšák2015-07-231-3/+51
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: add derived tessellation stateMarek Olšák2015-07-234-3/+146
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: implement a fixed-function tessellation control shader and its stateMarek Olšák2015-07-234-1/+68
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: set up a ring buffer for tessellation factorsMarek Olšák2015-07-234-0/+42
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: add tessellation shader statesMarek Olšák2015-07-233-13/+203
| | | | | | ls_rsrc# will be emitted as part of the derived tessellation state Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: update si_get_vs_info and si_get_vs_state for tessellationMarek Olšák2015-07-231-2/+8
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: add shader code generation for tessellationMarek Olšák2015-07-235-29/+851
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: implement TGSI_OPCODE_BARRIERMarek Olšák2015-07-231-0/+12
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: program VGT_SHADER_STAGES_EN for tessellationMarek Olšák2015-07-234-23/+45
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: add translation of PATCH primitivesMarek Olšák2015-07-231-0/+2
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: add support for tessellation shader resources and samplersMarek Olšák2015-07-232-8/+37
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: add code for creating, binding and destroying tessellation shadersMarek Olšák2015-07-233-0/+74
| | | | | | This doesn't do anything yet. Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: add debug flags for dumping tessellation shadersMarek Olšák2015-07-232-9/+17
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: rework how shader pointers to descriptors are setMarek Olšák2015-07-235-91/+156
| | | | | | | | | | | | | | | | | This is mainly needed for tessellation where a VS can be bound as VS, ES, or LS, and TES (tess. evaluationshader) can be bound as VS or ES or neither. Therefore we need the ability to move pointers to descriptors between shaders arbitrarily. The idea is that the context has a mapping from PIPE_SHADER_x to SPI_SHADER_USER_DATA_x. After a shader is enabled or disabled, si_shader_change_notify should be called to update this mapping accordingly. There is a dirty flag for each shader pointer, but only one emit function for all pointers in the whole context, whose code and logic is separated from descriptors. Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: rename build_streamout_store -> build_tbuffer_store_dwordsMarek Olšák2015-07-231-12/+12
| | | | | | It will be reused later. Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: separate primitive ID computationMarek Olšák2015-07-231-7/+20
| | | | | | Support for new shader stages will be added here. Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: move declaring streamout parameters to its own functionMarek Olšák2015-07-231-13/+23
| | | | | | It will be reused later. Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: make ES2GS offset sgpr location dynamicMarek Olšák2015-07-232-6/+3
| | | | | | It will have a different location in the tessellation evaluation shader. Reviewed-by: Michel Dänzer <[email protected]>
* gallium/radeon: expose emit_fetchMarek Olšák2015-07-232-19/+15
| | | | Radeonsi will use this.
* gallium/radeon: expose LLVM functions implementing emit_storeMarek Olšák2015-07-232-5/+13
| | | | | | | | emit_store will be reimplemented for tessellation control shader outputs where only radeon_llvm_saturate will be used, but radeonsi will want to fall back to radeon_llvm_emit_store for other register types. This exposes both functions.
* st/mesa: enable tessellation if the driver supports itMarek Olšák2015-07-231-0/+5
|
* st/mesa: set default tessellation levelsMarek Olšák2015-07-236-1/+67
|
* st/mesa: add barrier supportIlia Mirkin2015-07-231-1/+4
|
* st/mesa: disable copy propagation for tessellation shadersIlia Mirkin2015-07-231-1/+5
| | | | This can't work due to shared inputs and outputs and barriers.
* st/mesa: set vertices_per_patch when drawingIlia Mirkin2015-07-231-0/+2
|
* st/mesa: add 2d indexing support to outputsIlia Mirkin2015-07-231-10/+37
|
* st/mesa: handle tessellation 2D varyings correctlyMarek Olšák2015-07-231-8/+20
|
* st/mesa: lower gl_TessLevel from float[] to vecnIlia Mirkin2015-07-231-0/+2
|