Dave Airlie [Thu, 23 Jul 2015 01:13:36 +0000 (11:13 +1000)]
glsl/tests: fix varying_test since tess changes.
This fixes make check since the tess changes.
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 23 Jul 2015 00:39:26 +0000 (10:39 +1000)]
i965: fix warning since tess merge.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Marek Olšák [Sun, 22 Feb 2015 17:46:53 +0000 (18:46 +0100)]
radeonsi: enable tessellation, update GL3.txt & release notes
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Mon, 18 May 2015 12:41:35 +0000 (14:41 +0200)]
radeonsi: add scratch buffer support for tessellation shaders
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 17:16:02 +0000 (18:16 +0100)]
radeonsi: update invariant registers for tessellation
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 17:10:38 +0000 (18:10 +0100)]
radeonsi: add assertions into draw_vbo and check tessellation
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 17:09:18 +0000 (18:09 +0100)]
radeonsi: set the rasterization primitive type for tessellation
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 17:07:51 +0000 (18:07 +0100)]
radeonsi: set VGT_LS_HS_CONFIG for tessellation
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 17:06:34 +0000 (18:06 +0100)]
radeonsi: update IA_MULTI_VGT_PARAM for tessellation
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 17:01:18 +0000 (18:01 +0100)]
radeonsi: add derived tessellation state
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 17 May 2015 23:59:37 +0000 (01:59 +0200)]
radeonsi: implement a fixed-function tessellation control shader and its state
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 16:25:37 +0000 (17:25 +0100)]
radeonsi: set up a ring buffer for tessellation factors
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 16:07:34 +0000 (17:07 +0100)]
radeonsi: add tessellation shader states
ls_rsrc# will be emitted as part of the derived tessellation state
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 15:07:04 +0000 (16:07 +0100)]
radeonsi: update si_get_vs_info and si_get_vs_state for tessellation
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 14:09:35 +0000 (15:09 +0100)]
radeonsi: add shader code generation for tessellation
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Mon, 6 Oct 2014 11:19:53 +0000 (13:19 +0200)]
radeonsi: implement TGSI_OPCODE_BARRIER
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Thu, 18 Sep 2014 22:16:12 +0000 (00:16 +0200)]
radeonsi: program VGT_SHADER_STAGES_EN for tessellation
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Thu, 18 Sep 2014 21:39:44 +0000 (23:39 +0200)]
radeonsi: add translation of PATCH primitives
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Thu, 18 Sep 2014 20:54:40 +0000 (22:54 +0200)]
radeonsi: add support for tessellation shader resources and samplers
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Thu, 18 Sep 2014 20:50:52 +0000 (22:50 +0200)]
radeonsi: add code for creating, binding and destroying tessellation shaders
This doesn't do anything yet.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Thu, 18 Sep 2014 20:26:02 +0000 (22:26 +0200)]
radeonsi: add debug flags for dumping tessellation shaders
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Mon, 15 Sep 2014 21:34:28 +0000 (23:34 +0200)]
radeonsi: rework how shader pointers to descriptors are set
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 <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 13:54:54 +0000 (14:54 +0100)]
radeonsi: rename build_streamout_store -> build_tbuffer_store_dwords
It will be reused later.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 13:46:20 +0000 (14:46 +0100)]
radeonsi: separate primitive ID computation
Support for new shader stages will be added here.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 22 Feb 2015 13:33:49 +0000 (14:33 +0100)]
radeonsi: move declaring streamout parameters to its own function
It will be reused later.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Sun, 5 Oct 2014 22:17:42 +0000 (00:17 +0200)]
radeonsi: make ES2GS offset sgpr location dynamic
It will have a different location in the tessellation evaluation shader.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Tue, 3 Mar 2015 14:11:27 +0000 (15:11 +0100)]
gallium/radeon: expose emit_fetch
Radeonsi will use this.
Marek Olšák [Sun, 5 Oct 2014 18:20:18 +0000 (20:20 +0200)]
gallium/radeon: expose LLVM functions implementing emit_store
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.
Marek Olšák [Sun, 22 Feb 2015 18:50:42 +0000 (19:50 +0100)]
st/mesa: enable tessellation if the driver supports it
Marek Olšák [Mon, 18 May 2015 10:49:10 +0000 (12:49 +0200)]
st/mesa: set default tessellation levels
Ilia Mirkin [Sun, 7 Sep 2014 22:36:06 +0000 (18:36 -0400)]
st/mesa: add barrier support
Ilia Mirkin [Tue, 22 Jul 2014 00:45:29 +0000 (20:45 -0400)]
st/mesa: disable copy propagation for tessellation shaders
This can't work due to shared inputs and outputs and barriers.
Ilia Mirkin [Mon, 21 Jul 2014 22:49:40 +0000 (18:49 -0400)]
st/mesa: set vertices_per_patch when drawing
Ilia Mirkin [Sun, 13 Jul 2014 19:02:53 +0000 (15:02 -0400)]
st/mesa: add 2d indexing support to outputs
Marek Olšák [Sun, 22 Feb 2015 19:47:31 +0000 (20:47 +0100)]
st/mesa: handle tessellation 2D varyings correctly
Ilia Mirkin [Sun, 13 Jul 2014 00:09:06 +0000 (20:09 -0400)]
st/mesa: lower gl_TessLevel from float[] to vecn
Ilia Mirkin [Sat, 12 Jul 2014 21:28:24 +0000 (17:28 -0400)]
st/mesa: query shader CAPs for tessellation
The MaxTessPatchComponents query added by Marek.
Ilia Mirkin [Sat, 12 Jul 2014 21:15:51 +0000 (17:15 -0400)]
st/mesa: add texture updates for tessellation programs
Ilia Mirkin [Sat, 12 Jul 2014 21:10:59 +0000 (17:10 -0400)]
st/mesa: handle constbufs/ubos for tessellation shaders
Marek Olšák [Sun, 22 Feb 2015 19:44:39 +0000 (20:44 +0100)]
st/mesa: add conversion for tessellation shaders
Based on code from Ilia Mirkin <imirkin@alum.mit.edu>.
Ilia Mirkin [Sat, 12 Jul 2014 02:11:21 +0000 (22:11 -0400)]
st/mesa: add tessellation shader states
additional fixes by Marek
Marek Olšák [Tue, 16 Jun 2015 11:07:04 +0000 (13:07 +0200)]
mesa: implement GL_IS_PER_PATCH
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Marek Olšák [Sat, 13 Jun 2015 11:50:12 +0000 (13:50 +0200)]
glsl: use separate varying slots for patch varyings
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 <kenneth@whitecape.org>
Marek Olšák [Sat, 16 May 2015 19:12:54 +0000 (21:12 +0200)]
glsl: fix locations of 2-dimensional varyings without varying packing (v2)
v2: renamed producer/consumer_type -> producer/consumer_stage
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Marek Olšák [Fri, 3 Oct 2014 22:13:42 +0000 (00:13 +0200)]
glsl: don't demote tess control shader outputs
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Marek Olšák [Fri, 3 Oct 2014 22:15:33 +0000 (00:15 +0200)]
glsl: disable varying packing between tessellation shaders
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Marek Olšák [Tue, 16 Jun 2015 00:43:55 +0000 (02:43 +0200)]
glsl: allow indexing of gl_out with a non-const if length isn't known
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Fri, 12 Sep 2014 09:27:26 +0000 (21:27 +1200)]
glsl: allow redeclaration of TCS gl_out[]
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 7 Sep 2014 09:42:50 +0000 (21:42 +1200)]
glsl: validate restrictions on use of barrier()
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 <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Marek Olšák [Sun, 14 Jun 2015 18:14:22 +0000 (20:14 +0200)]
glsl: allow barrier() in tessellation control shaders
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Tue, 9 Sep 2014 07:25:02 +0000 (19:25 +1200)]
glsl: analyze TES usage of gl_ClipDistance
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 7 Sep 2014 06:19:15 +0000 (18:19 +1200)]
glsl: push vertex count determination down one level
We have the prog here, so we don't need the caller to work this out for
us.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ilia Mirkin [Tue, 22 Jul 2014 01:59:37 +0000 (21:59 -0400)]
glsl: pass shader stage to lower_output_reads and handle tess control
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 <imirkin@alum.mit.edu>
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Mon, 1 Sep 2014 08:48:09 +0000 (20:48 +1200)]
glsl: properly size unsized arrays in tess stages
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 31 Aug 2014 07:35:46 +0000 (19:35 +1200)]
glsl: restrict indexing for writes to TCS outputs to gl_InvocationID
Marek: handle ir_swizzle
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 17 Aug 2014 10:37:16 +0000 (22:37 +1200)]
glsl: add builtin constants for ARB_tessellation_shader
Limits from other extensions added by Marek.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 24 Aug 2014 04:46:40 +0000 (16:46 +1200)]
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>
Chris Forbes [Mon, 18 Aug 2014 09:51:46 +0000 (21:51 +1200)]
glsl: relax unsized input/output block arrays for TCS/TES
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Marek Olšák [Mon, 15 Jun 2015 23:32:28 +0000 (01:32 +0200)]
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>
Marek Olšák [Thu, 28 May 2015 21:24:08 +0000 (23:24 +0200)]
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>
Fabian Bieler [Thu, 20 Mar 2014 21:34:42 +0000 (22:34 +0100)]
glsl: make stand-alone compiler work with tessellation shaders.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Fabian Bieler [Thu, 20 Mar 2014 21:37:37 +0000 (22:37 +0100)]
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>
Fabian Bieler [Mon, 10 Mar 2014 16:55:36 +0000 (17:55 +0100)]
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>
Fabian Bieler [Thu, 20 Mar 2014 21:33:05 +0000 (22:33 +0100)]
glsl: make lower_clip_distance work with tessellation shaders.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Chris Forbes [Sun, 21 Sep 2014 01:33:14 +0000 (13:33 +1200)]
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>
Fabian Bieler [Wed, 5 Mar 2014 12:43:17 +0000 (13:43 +0100)]
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>
Fabian Bieler [Thu, 20 Mar 2014 21:41:40 +0000 (22:41 +0100)]
glsl: add tessellation shader defines and built-in variables.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Fabian Bieler [Thu, 20 Mar 2014 21:44:43 +0000 (22:44 +0100)]
glsl: add tessellation shader parsing support (v2)
v2: Fixed things that Ken suggested.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Marek Olšák [Thu, 28 May 2015 20:08:55 +0000 (22:08 +0200)]
mesa: don't allow drawing with tess ctrl shader and without tess eval shader
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Marek Olšák [Wed, 22 Apr 2015 21:05:34 +0000 (23:05 +0200)]
mesa: handle tessellation shaders in use_shader_program
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Marek Olšák [Sat, 13 Jun 2015 23:21:02 +0000 (01:21 +0200)]
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>
Fabian Bieler [Fri, 7 Mar 2014 09:39:39 +0000 (10:39 +0100)]
mesa: add misc tessellation shader stuff
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Fabian Bieler [Fri, 7 Mar 2014 09:39:18 +0000 (10:39 +0100)]
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>
Marek Olšák [Sat, 13 Jun 2015 21:06:06 +0000 (23:06 +0200)]
mesa: allow setting of patch parameters.
Based on a patch from Fabian Bieler <fabianbieler@fastmail.fm>.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sun, 21 Sep 2014 00:08:22 +0000 (12:08 +1200)]
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>
Chris Forbes [Sat, 20 Sep 2014 23:16:06 +0000 (11:16 +1200)]
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>
Fabian Bieler [Fri, 7 Mar 2014 09:33:54 +0000 (10:33 +0100)]
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>
Marek Olšák [Sat, 13 Jun 2015 20:26:56 +0000 (22:26 +0200)]
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>
Chris Forbes [Sun, 21 Sep 2014 00:37:47 +0000 (12:37 +1200)]
mesa: allow drawing of patch primitives
Cosmetic changes and fixes by Marek.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Marek Olšák [Thu, 28 May 2015 17:11:07 +0000 (19:11 +0200)]
mesa: add _mesa_has_tessellation
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Fabian Bieler [Mon, 10 Mar 2014 10:58:37 +0000 (11:58 +0100)]
mesa: add misc tessellation shader support
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Fabian Bieler [Fri, 7 Mar 2014 09:28:03 +0000 (10:28 +0100)]
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>
Chris Forbes [Sun, 21 Sep 2014 00:41:07 +0000 (12:41 +1200)]
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>
Fabian Bieler [Fri, 7 Mar 2014 09:19:09 +0000 (10:19 +0100)]
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>
Fabian Bieler [Fri, 7 Mar 2014 09:13:16 +0000 (10:13 +0100)]
mesa: add tessellation shader structs
Marek: remove unused members, cleanup
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Fabian Bieler [Fri, 7 Mar 2014 08:59:11 +0000 (09:59 +0100)]
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>
Marek Olšák [Tue, 16 Jun 2015 20:13:34 +0000 (22:13 +0200)]
drirc: drop support for Heaven 3.0, fixes tessellation in 4.0
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Marek Olšák [Thu, 16 Jul 2015 13:27:34 +0000 (15:27 +0200)]
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>
Marek Olšák [Thu, 16 Jul 2015 12:54:50 +0000 (14:54 +0200)]
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>
Marek Olšák [Thu, 16 Jul 2015 12:42:38 +0000 (14:42 +0200)]
radeonsi: remove switch statement in si_create_context
and make si_init_config static
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Marek Olšák [Thu, 16 Jul 2015 11:17:14 +0000 (13:17 +0200)]
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>
Marek Olšák [Fri, 10 Jul 2015 21:35:55 +0000 (23:35 +0200)]
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>
Marek Olšák [Fri, 10 Jul 2015 21:29:04 +0000 (23:29 +0200)]
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>
Marek Olšák [Sun, 5 Jul 2015 14:57:58 +0000 (16:57 +0200)]
cso: eliminate some sampler function wrappers
Marek Olšák [Sun, 12 Jul 2015 14:12:59 +0000 (16:12 +0200)]
gallium/tests: use cso_set_samplers
Marek Olšák [Sun, 12 Jul 2015 13:52:44 +0000 (15:52 +0200)]
gallium/util: use cso_set_samplers
Marek Olšák [Sun, 5 Jul 2015 14:54:44 +0000 (16:54 +0200)]
st/mesa: use cso_set_samplers
Marek Olšák [Sun, 5 Jul 2015 14:34:59 +0000 (16:34 +0200)]
cso: remove clip state handling
There is no need for this.
v2: handle redundant clip state changes in st/mesa
Marek Olšák [Sun, 5 Jul 2015 14:32:49 +0000 (16:32 +0200)]
cso: only allow saving and restoring fragment sampler states
Marek Olšák [Sun, 5 Jul 2015 14:10:54 +0000 (16:10 +0200)]
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.