gzdoom/wadsrc/static/shaders/glsl
Christoph Oelckers f710518903 - use a uniform array to store vertex data to render dynamic stuff on GL 3.x hardware without the ARB_buffer_storage extension.
Due to the way the engine works it needs to render a lot of small primitives with frequent state changes.
But due to the performance of buffer uploads it is impossible to upload each primitive's vertices to a buffer separately because buffer uploads nearly always stall the GPU.
On the other hand, in order to reduce the amount of buffer uploads all the necessary state changes would have to be saved in an array until they can finally be used. This method also imposed an unacceptable overhead.
Fortunately, uploading uniform arrays is very fast and doesn't cause GPU stalls, so now the engine puts the vertex data per primitive into a uniform array and uses a static vertex buffer to index the array in the vertex shader.
This method offers the same performance as immediate mode but only uses core profile features.
2014-06-30 18:10:55 +02:00
..
burn.fp - added missing shader files. 2014-05-12 22:24:26 +02:00
burn.vp - added missing shader files. 2014-05-12 22:24:26 +02:00
fogboundary.fp shader rework 2014-05-12 14:45:41 +02:00
func_brightmap.fp shader rework 2014-05-12 14:45:41 +02:00
func_defaultlight.fp shader rework 2014-05-12 14:45:41 +02:00
func_normal.fp shader rework 2014-05-12 14:45:41 +02:00
func_notexture.fp shader rework 2014-05-12 14:45:41 +02:00
func_warp1.fp shader rework 2014-05-12 14:45:41 +02:00
func_warp2.fp shader rework 2014-05-12 14:45:41 +02:00
func_wavex.fp shader rework 2014-05-12 14:45:41 +02:00
fuzz_jagged.fp shader rework 2014-05-12 14:45:41 +02:00
fuzz_noise.fp shader rework 2014-05-12 14:45:41 +02:00
fuzz_smooth.fp shader rework 2014-05-12 14:45:41 +02:00
fuzz_smoothnoise.fp shader rework 2014-05-12 14:45:41 +02:00
fuzz_smoothtranslucent.fp shader rework 2014-05-12 14:45:41 +02:00
fuzz_standard.fp shader rework 2014-05-12 14:45:41 +02:00
fuzz_swirly.fp shader rework 2014-05-12 14:45:41 +02:00
main.fp - mystery of desaturation shader solved: The old code passed '1-desaturation' to the shader, the new code 'desaturation', so for the 'mix' function to work its arguments must be swapped. 2014-05-21 15:25:25 +02:00
main.vp - use a uniform array to store vertex data to render dynamic stuff on GL 3.x hardware without the ARB_buffer_storage extension. 2014-06-30 18:10:55 +02:00
shaderdefs.i - added second vertex coordinate attribute for model interpolation. 2014-06-29 11:00:21 +02:00
stencil.fp - added missing shader files. 2014-05-12 22:24:26 +02:00
stencil.vp - added missing shader files. 2014-05-12 22:24:26 +02:00