summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* st/mesa: query shader CAPs for tessellationIlia Mirkin2015-07-231-0/+15
| | | | The MaxTessPatchComponents query added by Marek.
* st/mesa: add texture updates for tessellation programsIlia Mirkin2015-07-234-0/+72
|
* st/mesa: handle constbufs/ubos for tessellation shadersIlia Mirkin2015-07-233-1/+95
|
* st/mesa: add conversion for tessellation shadersMarek Olšák2015-07-232-98/+274
| | | | Based on code from Ilia Mirkin <[email protected]>.
* st/mesa: add tessellation shader statesIlia Mirkin2015-07-239-1/+459
| | | | additional fixes by Marek
* mesa: implement GL_IS_PER_PATCHMarek Olšák2015-07-231-2/+8
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: use separate varying slots for patch varyingsMarek Olšák2015-07-234-12/+49
| | | | | | | The idea is to allow 32 normal varyings and 32 patch varyings, a total of 64. Previously, only a total of 32 was allowed. Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: fix locations of 2-dimensional varyings without varying packing (v2)Marek Olšák2015-07-231-9/+28
| | | | | | v2: renamed producer/consumer_type -> producer/consumer_stage Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: don't demote tess control shader outputsMarek Olšák2015-07-231-1/+5
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: disable varying packing between tessellation shadersMarek Olšák2015-07-231-8/+21
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: allow indexing of gl_out with a non-const if length isn't knownMarek Olšák2015-07-231-0/+10
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: allow redeclaration of TCS gl_out[]Chris Forbes2015-07-231-4/+16
| | | | | Signed-off-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: validate restrictions on use of barrier()Chris Forbes2015-07-231-0/+99
| | | | | | | | | | With the exception of always-taken switch cases (which are indistinguishable from straight line code in our IR), this disallows use of the builtin barrier() function in all the places it may not appear. Signed-off-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: allow barrier() in tessellation control shadersMarek Olšák2015-07-231-2/+2
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: analyze TES usage of gl_ClipDistanceChris Forbes2015-07-233-0/+27
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: push vertex count determination down one levelChris Forbes2015-07-233-17/+11
| | | | | | | We have the prog here, so we don't need the caller to work this out for us. Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: pass shader stage to lower_output_reads and handle tess controlIlia Mirkin2015-07-234-7/+12
| | | | | | | | | | | | | Tessellation control outputs can be read in directly without first having been written. Accessing these will require some special logic anyways, so just let them through. V2: Never lower tess control output reads, whether patch or not -- both can be read back by other threads. Signed-off-by: Ilia Mirkin <[email protected]> Signed-off-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: properly size unsized arrays in tess stagesChris Forbes2015-07-231-2/+47
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: restrict indexing for writes to TCS outputs to gl_InvocationIDChris Forbes2015-07-231-11/+58
| | | | | | Marek: handle ir_swizzle Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: add builtin constants for ARB_tessellation_shaderChris Forbes2015-07-233-4/+72
| | | | | | Limits from other extensions added by Marek. Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: allow nonconst indexing of arrays where we can work out an implicit sizeChris Forbes2015-07-231-1/+36
| | | | | Signed-off-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: relax unsized input/output block arrays for TCS/TESChris Forbes2015-07-231-7/+30
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* glsl: add the tessellation extension to the list for the "layout" qualifierMarek Olšák2015-07-231-1/+2
| | | | | | | | | | | | | | | | This is technically not needed, but it makes the compiler return a better error message if tessellation is used with GLSL < 1.50. Instead of: error: syntax error, unexpected NEW_IDENTIFIER, expecting $end It returns: error: #version 150 layout qualifier `triangles' used And the tessellation spec says: OpenGL 3.2 and GLSL 1.50 are required. So it makes perfect sense. Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: don't lower variable indexing on non-patch tessellation inputs/outputsMarek Olšák2015-07-236-21/+57
| | | | | | | | | | | | There is no way to lower them, because the array sizes are unknown at compile time. Based on a patch from: Fabian Bieler <[email protected]> v2: add comments Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* glsl: make stand-alone compiler work with tessellation shaders.Fabian Bieler2015-07-233-1/+12
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: add "in" or "out" prefix to name when flattening interface blocksFabian Bieler2015-07-231-2/+5
| | | | | | | | This is to prevent a name conflict in tessellation shaders built-in interface blocks. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* glsl: lower gl_TessLevel* from float[n] to vecn.Fabian Bieler2015-07-237-13/+517
| | | | | | | | | | Similar to gl_ClipDistance -> gl_ClipDistanceMESA v2: - renamed is_mesa_var to lowered_builtin_array_variable - moved LowerTessLevel into gl_constants - cosmetic changes in lower_tess_level.cpp Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: make lower_clip_distance work with tessellation shaders.Fabian Bieler2015-07-231-80/+105
| | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* glsl: allow linking of tessellation shaders.Chris Forbes2015-07-233-7/+294
| | | | | | | Marek: require a tess eval shader if a tess control shader is present Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* glsl: add the patch in/out qualifier (v2)Fabian Bieler2015-07-2317-18/+156
| | | | | | v2: Dropped some unrelated reordering in glsl_parser.yy as Ken suggested. Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: add tessellation shader defines and built-in variables.Fabian Bieler2015-07-235-2/+96
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* glsl: add tessellation shader parsing support (v2)Fabian Bieler2015-07-236-48/+476
| | | | | | v2: Fixed things that Ken suggested. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: don't allow drawing with tess ctrl shader and without tess eval shaderMarek Olšák2015-07-231-0/+19
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: handle tessellation shaders in use_shader_programMarek Olšák2015-07-231-4/+2
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: add program interface queries for tessellation shadersMarek Olšák2015-07-232-8/+21
| | | | | | Based on a patch by Chris Forbes <[email protected]>. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: add misc tessellation shader stuffFabian Bieler2015-07-234-5/+80
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: add tessellation shader getters (v3)Fabian Bieler2015-07-233-0/+135
| | | | | | | | Tessellation dependencies added by Marek. v2: require tessellation in addition to atomics/images for some glGet queries Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: allow setting of patch parameters.Marek Olšák2015-07-232-2/+47
| | | | | Based on a patch from Fabian Bieler <[email protected]>. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: require VS if TCS or TES is present in pipelineChris Forbes2015-07-231-1/+3
| | | | | Signed-off-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: allow tess stages in glUseProgramStagesChris Forbes2015-07-231-4/+9
| | | | | | Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: support tess stages in glGetProgramPipelineivFabian Bieler2015-07-231-4/+11
| | | | | | Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>