summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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]>
* mesa: take tessellation into account when validating GS input primitive modeMarek Olšák2015-07-231-2/+20
| | | | | | I've reported the bug in the Khronos bugzilla. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: allow drawing of patch primitivesChris Forbes2015-07-231-0/+45
| | | | | | Cosmetic changes and fixes by Marek. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: add _mesa_has_tessellationMarek Olšák2015-07-232-1/+12
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: add misc tessellation shader supportFabian Bieler2015-07-232-1/+88
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: add tessellation shader init functions.Fabian Bieler2015-07-232-0/+42
| | | | | | | | Signed-off-by: Chris Forbes <[email protected]> Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: add tessellation shader state and limitsChris Forbes2015-07-234-0/+29
| | | | | | | Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: add tessellation shader enumsFabian Bieler2015-07-237-4/+30
| | | | | | | Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: add tessellation shader structsFabian Bieler2015-07-231-0/+105
| | | | | | Marek: remove unused members, cleanup Reviewed-by: Kenneth Graunke <[email protected]>
* mapi: add ARB_tessellation_shaderFabian Bieler2015-07-237-2/+97
| | | | | | | Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* drirc: drop support for Heaven 3.0, fixes tessellation in 4.0Marek Olšák2015-07-231-20/+3
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* winsys/radeon: implement buffer_unmapMarek Olšák2015-07-232-6/+24
| | | | | | | This has been a no-op due to performance concerns. From now on, drivers should decide when they don't want to unmap, not the winsys. Reviewed-by: Michel Dänzer <[email protected]>
* gallium/radeon: remove buffer_unmap calls that can potentially decrease perfMarek Olšák2015-07-237-26/+1
| | | | | | | | | | | | | buffer_unmap is currently a no-op on radeon and done correctly on amdgpu. I plan to fix it for radeon, but before that, all occurences of buffer_unmap that can negatively affect performance in the future must be removed. There are 2 reasons for removing buffer_unmap calls: - There is a likelihood that buffer_map will be called again, so we don't want to unmap yet. - The buffer is being released, which automatically unmaps it. Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: remove switch statement in si_create_contextMarek Olšák2015-07-233-13/+7
| | | | | | and make si_init_config static Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: don't change pipe_resource in resource_copy_regionMarek Olšák2015-07-234-160/+110
| | | | | | | Copied from r600g. pipe_resource can be shared by multiple threads, so we shouldn't change it. Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: upload shader rodata after updating scratch relocationsMarek Olšák2015-07-233-29/+29
| | | | | | Cc: 10.5 10.6 <[email protected]> Reviewed-by: Tom Stellard <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: remove redundant parameter in si_shader_binary_readMarek Olšák2015-07-233-8/+5
| | | | | Reviewed-by: Tom Stellard <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>