Chris Forbes
61846f222f
glsl: properly size unsized arrays in tess stages
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:28 +02:00
Chris Forbes
d563946a40
glsl: restrict indexing for writes to TCS outputs to gl_InvocationID
...
Marek: handle ir_swizzle
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:28 +02:00
Chris Forbes
da7adb99e8
glsl: add builtin constants for ARB_tessellation_shader
...
Limits from other extensions added by Marek.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:27 +02:00
Chris Forbes
b7f98f9f09
glsl: allow nonconst indexing of arrays where we can work out an implicit size
...
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:27 +02:00
Chris Forbes
64a0ae88b9
glsl: relax unsized input/output block arrays for TCS/TES
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
2015-07-23 00:59:27 +02:00
Marek Olšák
2abbe941e1
glsl: add the tessellation extension to the list for the "layout" qualifier
...
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 <kenneth@whitecape.org>
2015-07-23 00:59:27 +02:00
Marek Olšák
fb800b3dcd
glsl: don't lower variable indexing on non-patch tessellation inputs/outputs
...
There is no way to lower them, because the array sizes are unknown
at compile time.
Based on a patch from: Fabian Bieler <fabianbieler@fastmail.fm>
v2: add comments
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
2015-07-23 00:59:27 +02:00
Fabian Bieler
0cfac91755
glsl: make stand-alone compiler work with tessellation shaders.
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:27 +02:00
Fabian Bieler
c53aa26379
glsl: add "in" or "out" prefix to name when flattening interface blocks
...
This is to prevent a name conflict in tessellation shaders built-in interface
blocks.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
2015-07-23 00:59:27 +02:00
Fabian Bieler
73a9a1539a
glsl: lower gl_TessLevel* from float[n] to vecn.
...
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 <kenneth@whitecape.org>
2015-07-23 00:59:27 +02:00
Fabian Bieler
54f2950297
glsl: make lower_clip_distance work with tessellation shaders.
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
2015-07-23 00:59:27 +02:00
Chris Forbes
7c758c5a21
glsl: allow linking of tessellation shaders.
...
Marek: require a tess eval shader if a tess control shader is present
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
2015-07-23 00:59:27 +02:00
Fabian Bieler
1009b3311f
glsl: add the patch in/out qualifier (v2)
...
v2: Dropped some unrelated reordering in glsl_parser.yy as Ken suggested.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:26 +02:00
Fabian Bieler
1036b024d4
glsl: add tessellation shader defines and built-in variables.
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:26 +02:00
Fabian Bieler
497eb29583
glsl: add tessellation shader parsing support (v2)
...
v2: Fixed things that Ken suggested.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:26 +02:00
Marek Olšák
206af9d049
mesa: don't allow drawing with tess ctrl shader and without tess eval shader
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:26 +02:00
Marek Olšák
3d528e7c47
mesa: handle tessellation shaders in use_shader_program
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:26 +02:00
Marek Olšák
882413f1c5
mesa: add program interface queries for tessellation shaders
...
Based on a patch by Chris Forbes <chrisf@ijw.co.nz>.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:26 +02:00
Fabian Bieler
550a570c53
mesa: add misc tessellation shader stuff
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:26 +02:00
Fabian Bieler
6823d713c6
mesa: add tessellation shader getters (v3)
...
Tessellation dependencies added by Marek.
v2: require tessellation in addition to atomics/images for some glGet queries
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:26 +02:00
Marek Olšák
cb0c12512c
mesa: allow setting of patch parameters.
...
Based on a patch from Fabian Bieler <fabianbieler@fastmail.fm>.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:25 +02:00
Chris Forbes
e32e546c17
mesa: require VS if TCS or TES is present in pipeline
...
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:25 +02:00
Chris Forbes
a30cc28829
mesa: allow tess stages in glUseProgramStages
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:25 +02:00
Fabian Bieler
6435b2909e
mesa: support tess stages in glGetProgramPipelineiv
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:25 +02:00
Marek Olšák
5852b5d2fa
mesa: take tessellation into account when validating GS input primitive mode
...
I've reported the bug in the Khronos bugzilla.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:25 +02:00
Chris Forbes
8e758c3a74
mesa: allow drawing of patch primitives
...
Cosmetic changes and fixes by Marek.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:25 +02:00
Marek Olšák
fa602c2088
mesa: add _mesa_has_tessellation
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:25 +02:00
Fabian Bieler
a894ed8293
mesa: add misc tessellation shader support
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:25 +02:00
Fabian Bieler
78d3054980
mesa: add tessellation shader init functions.
...
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:25 +02:00
Chris Forbes
bb97cc66c1
mesa: add tessellation shader state and limits
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:25 +02:00
Fabian Bieler
a2af956963
mesa: add tessellation shader enums
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:24 +02:00
Fabian Bieler
df3860a3e3
mesa: add tessellation shader structs
...
Marek: remove unused members, cleanup
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:24 +02:00
Fabian Bieler
e2b59a39cb
mapi: add ARB_tessellation_shader
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:24 +02:00
Marek Olšák
5ead448719
drirc: drop support for Heaven 3.0, fixes tessellation in 4.0
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-07-23 00:59:24 +02:00
Marek Olšák
6b37643b82
winsys/radeon: implement buffer_unmap
...
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 <michel.daenzer@amd.com>
2015-07-23 00:59:24 +02:00
Marek Olšák
5e3974338e
gallium/radeon: remove buffer_unmap calls that can potentially decrease perf
...
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 <michel.daenzer@amd.com>
2015-07-23 00:59:24 +02:00
Marek Olšák
0aa2446e2c
radeonsi: remove switch statement in si_create_context
...
and make si_init_config static
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2015-07-23 00:59:24 +02:00
Marek Olšák
46b2b3bda8
radeonsi: don't change pipe_resource in resource_copy_region
...
Copied from r600g. pipe_resource can be shared by multiple threads, so we
shouldn't change it.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2015-07-23 00:59:24 +02:00
Marek Olšák
50a957c5de
radeonsi: upload shader rodata after updating scratch relocations
...
Cc: 10.5 10.6 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2015-07-23 00:59:24 +02:00
Marek Olšák
e4d738f6c6
radeonsi: remove redundant parameter in si_shader_binary_read
...
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2015-07-23 00:59:23 +02:00
Marek Olšák
2369dc8382
cso: eliminate some sampler function wrappers
2015-07-23 00:59:23 +02:00
Marek Olšák
68dcbf4c46
gallium/tests: use cso_set_samplers
2015-07-23 00:59:23 +02:00
Marek Olšák
85f5722f70
gallium/util: use cso_set_samplers
2015-07-23 00:59:23 +02:00
Marek Olšák
5ef1782b9f
st/mesa: use cso_set_samplers
2015-07-23 00:59:23 +02:00
Marek Olšák
4ef7d93a94
cso: remove clip state handling
...
There is no need for this.
v2: handle redundant clip state changes in st/mesa
2015-07-23 00:59:21 +02:00
Marek Olšák
b7492a1f45
cso: only allow saving and restoring fragment sampler states
2015-07-22 23:56:00 +02:00
Marek Olšák
4e8bbed926
cso: drop inefficient checking for redundant sampler state changes
...
Drivers can do this better, because they can skip redundant state changes
at per-slot granularity.
2015-07-22 23:56:00 +02:00
Marek Olšák
3639d66a47
cso: only allow saving and restoring fragment sampler views
...
Not needed for other shader stages.
2015-07-22 23:56:00 +02:00
Marek Olšák
2d8213bfa9
gallium/util: improve dump functions
...
Reviewed-by: Brian Paul <brianp@vmware.com>
2015-07-22 23:56:00 +02:00
Marek Olšák
8141b4cee5
tgsi: allow dumping to a file directly
2015-07-22 23:56:00 +02:00