Marek Olšák
34e8200599
radeonsi: don't recompile shaders when changing nr_cbufs from 0 to 1
...
Both cases are equivalent.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-10-12 23:52:07 +02:00
Marek Olšák
5e0fbe1b63
radeonsi: remove vs.ucps_enabled from the shader key
...
Written CLIPDIST outputs are simply disabled in PA_CL_VS_OUT_CNTL.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-10-12 23:52:02 +02:00
Marek Olšák
a9592cd3ac
radeonsi: assume ClipDistance usage mask is always 0xf
...
No code in Mesa sets the usage mask to any other value.
The final mask is AND'ed with enable bits from the rasterizer state anyway.
If somebody implements setting usage masks in st/mesa, we can use
tgsi_shader_info to get it more easily.
This is a prerequisite for the following commit.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-10-12 23:51:44 +02:00
Marek Olšák
1f6c0b55df
radeonsi: set number of userdata SGPRs of GS copy shader to 4
...
It only needs the constant buffer with clip planes and read-write resources
for the GS->VS ring and streamout. That's 2 pointers.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-10-04 15:16:15 +02:00
Marek Olšák
91f1a79f78
radeonsi: make the vertex shader key smaller
...
We only support 16 vertex attribs, not 32.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-10-04 15:16:14 +02:00
Marek Olšák
10e386f4aa
radeonsi: remove interp_at_sample from the key, use TGSI_INTERPOLATE_LOC_SAMPLE
...
st/mesa has the same flag in its shader key, we don't need to do it
in the driver anymore.
Instead, use TGSI_INTERPOLATE_LOC_SAMPLE, which is what st/mesa sets.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-10-04 15:16:14 +02:00
Marek Olšák
0a2d6f0c4e
radeonsi: move geometry shader properties from si_shader to si_shader_selector
...
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-10-04 15:16:14 +02:00
Marek Olšák
6c9f61c97e
radeonsi: remove unused variable si_shader::gs_input_prim
...
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-10-04 15:16:14 +02:00
Marek Olšák
8860584045
radeonsi: get fs_write_all from tgsi_shader_info directly
...
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-10-04 15:16:14 +02:00
Marek Olšák
5233568861
radeonsi: get tgsi_shader_info only once before compilation
...
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-10-04 15:16:14 +02:00
Marek Olšák
1abb1a97b0
radeonsi: don't pass the context to the shader translator
...
This should prevent accessing context state there.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-09-24 14:48:02 +02:00
Marek Olšák
e29353ff20
radeonsi: don't snoop currently-bound GS shader when compiling ES
...
Instead, pass the layout of GS inputs in memory to the ES using the shader
key. Only 64 bits are needed to represent the layout in the key.
Mixing and matching different VS and GS shaders should now always work.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-09-24 14:48:02 +02:00
Marek Olšák
2774abd4ce
radeonsi: shorten si_pipe_* prefixes to si_*
...
This was the original naming convention in r600g and it somehow crept
into radeonsi.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-09-24 14:48:02 +02:00
Marek Olšák
8c37c16cbc
radeonsi: merge si_pipe_shader into si_shader
...
One is part of the other anyway.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-09-24 14:48:02 +02:00
Marek Olšák
dba4c5baf4
radeonsi: move DB_SHADER_CONTROL into db_render_state
...
I will need this for fixing sample shading with 1 sample.
The good news is that all shader pm4 states no longer use the current context
state, so we can generate the pm4 states outside of draw_vbo if needed.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-09-24 14:48:02 +02:00
Marek Olšák
adc5797f54
radeonsi: set KILL_ENABLE during shader compilation, remove uses_kill flag
...
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-09-24 14:48:02 +02:00
Marek Olšák
a34c9f70b1
radeonsi: remove shader.ps_conservative_z, set db_shader_control instead
...
Also set the field on SI too. It's not just specific to CIK.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-09-24 14:48:02 +02:00
Marek Olšák
a768b43bc3
radeonsi: remove unused variable si_pipe_shader::sprite_coord_enable
...
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-09-24 14:48:02 +02:00
Tom Stellard
b0f780345e
radeonsi/compute: Add support scratch buffer support v2
...
The scratch buffer will be used for private memory and also register
spilling.
v2:
- Code cleanups
2014-07-21 10:00:09 -04:00
Marek Olšák
09056b352d
radeonsi: use an SGPR instead of VGT_INDX_OFFSET
...
The draw indirect packets cannot set VGT_INDX_OFFSET, they can only set user
data SGPRs. This is the only way to support start/index_bias with indirect
drawing.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-07-18 01:58:58 +02:00
Marek Olšák
6a2b38381e
radeonsi: pass ARB_conservative_depth parameters to the hardware
...
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-06-19 00:17:36 +02:00
Marek Olšák
99df120e00
radeonsi: interpolate varyings at sample when full sample shading is enabled
2014-06-02 12:58:22 +02:00
Marek Olšák
d9e102b220
radeonsi: prepare depth export registers at compile time
...
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2014-05-10 13:58:46 +02:00
Michel Dänzer
f8e16010e5
radeonsi: Put GS ring buffer descriptors with streamout buffer descriptors
...
And mark the constant buffers as read only for the GPU again.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-01-29 11:09:26 +09:00
Michel Dänzer
8afde9fa23
radeonsi: Take GS into account for VS state in more places
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-01-29 11:07:35 +09:00
Michel Dänzer
d8b3d806fc
radeonsi: Handle TGSI_SEMANTIC_PRIMID
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-01-29 11:07:11 +09:00
Michel Dänzer
7c7d7380f1
radeonsi: Generalize counting of shader parameters
...
Now it covers ES->GS as well as VS->PS.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-01-29 11:06:58 +09:00
Michel Dänzer
404b29d765
radeonsi: Initial geometry shader support
...
Partly based on the corresponding r600g work by Vadim Girlin and Dave
Airlie.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-01-29 11:06:28 +09:00
Andreas Hartmetz
8662e66bf2
radeonsi: Rename the commonly occurring rctx/r600 variables.
...
The "r" stands for R600.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-01-14 00:07:14 +01:00
Andreas Hartmetz
238aeabce0
radeonsi: Rename r600->si for structs in si_pipe.h.
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-01-14 00:07:13 +01:00
Andreas Hartmetz
786af2f963
radeonsi: Apply si_* file naming scheme.
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-01-14 00:07:13 +01:00