2e630297af
GPUShader: Fix linking working even if one shader compilation failed
...
Linking without valid shaders works on some drivers. Avoid this case by
forcing linking step to return false.
2020-08-21 14:25:58 +02:00
3a6e981bcd
Cleanup: GPU: Update classes comments
...
This should avoid confusion about what is a class and what is an opaque
pointer.
2020-08-21 14:16:42 +02:00
220fbdf593
GPUShader: Make GPUShader* an opaque pointer to blender::gpu::Shader
...
This avoids the misleading inheritance.
Also cleanup by setting the blender::gpu::Shader as active shader to
avoid some casting.
2020-08-21 14:16:42 +02:00
1e95a7402c
GPUShader: Fix NULL string used as shader name.
...
The shader name is required with the latest changes.
2020-08-21 14:16:42 +02:00
c4f122ac8f
GPUUniformBuf: GL backend isolation
...
This is in preparation of vulkan backend. We move all opengl
functionnalities behind an abstract class.
This also cleansup the "dynamic" ubo create and rename it to
`GPU_uniformbuf_from_list()`
Contains, no functional change.
Part of T68990 Vulkan support.
2020-08-21 14:16:42 +02:00
7edd8a7738
GPUUniformBuf: Rename struct and change API a bit
...
This follows the GPU module naming of other buffers.
We pass name to distinguish each GPUUniformBuf in debug mode.
Also remove DRW_uniform_buffer interface.
2020-08-21 14:16:42 +02:00
2e6d5e6c6b
Cleanup: Clang Tidy: Resolve readability-delete-null-pointer error
2020-08-20 13:33:17 -04:00
5a957c0299
GPUShaderInterface: Fix use after free crash
2020-08-20 17:57:05 +02:00
5f414234dd
GPUState: Use state setters inside selection code
...
This fixes T79945 Gizmos don't work in Edit Mode
2020-08-20 17:02:39 +02:00
e23ef8753a
GPUState: Use explicit depth test enum
2020-08-20 17:02:39 +02:00
19d72175ba
GPUShaderInterface: GL backend isolation
2020-08-20 16:11:14 +02:00
14fcd46ca7
GPU: Use GPUShader setters for uniforms removing uses of ShaderInterface
2020-08-20 16:11:14 +02:00
1dafa87eb5
GPUState: Fix signed / bitfield conversion leading to wrong enum value
...
This was creating drawing issues on windows builds.
2020-08-19 17:13:53 +02:00
e9e493977c
GPUShader: Fix apple clang warnings
2020-08-19 11:57:28 +02:00
7a602fb525
Cleanup: spelling
2020-08-19 14:04:36 +10:00
33fde699e2
Cleanup: GPUState: Remove GPU_state_init()
2020-08-18 21:30:11 +02:00
e5796233c7
GPUState: Use GPU_viewport to set viewport state in GPU_framebuffer
...
also fix a small issue in GPU_texture_clear.
2020-08-18 21:30:11 +02:00
adca09b643
GPUState: Port default state to StateManager constructor
2020-08-18 21:30:11 +02:00
a9f2ebb215
Cleanup: DRW: Use GPUState instead of raw opengl calls
...
Should not break anything! Huh!
2020-08-18 21:30:10 +02:00
536c2e0ec9
GPUState: Only apply state before drawing
2020-08-18 21:30:10 +02:00
482a51aabf
Cleanup: GPUState: Remove stack from the state manager and rename it
2020-08-18 21:30:10 +02:00
d10f000322
GPUState: Remove gpuPushAttr/gpuPopAttr
...
And use manual save/restore mechanism.
The stack method is not used so much to be considered useful.
2020-08-18 21:30:10 +02:00
f30df15edc
GPUState: Make use of GPUStateStack class
...
This isolate most GL calls to the GL backend. Still a few remains.
2020-08-18 21:30:10 +02:00
298329554a
Cleanup: GPUState: remove double GPU_blend calls
2020-08-18 21:30:10 +02:00
bf1b622dd9
GPUState: GPU_blend final API renaming
...
We now use GPU_blend for enabling / disabling blending and explicitly
set the blend equation.
2020-08-18 21:30:10 +02:00
10558d6973
Cleanup: GPUState: remove use of GPU_blend_set_func
2020-08-18 21:30:10 +02:00
969bcf0793
Cleanup: GPUState: Replace blend func separate by enum
2020-08-18 21:30:10 +02:00
a1459b2f7a
Cleanup: GPU: Move towards an explicit Blend state
...
This make use of the GLStateStack functions for:
- `GPU_blend()`
- `GPU_blend_set_func()`
- `GPU_blend_set_func_separate()`
The goal is to unify them using an explicit state setting.
This will remove the need to use obscure blend functions
2020-08-18 21:30:10 +02:00
2ae1c895a2
GPUState: Add GL backend and state tracking but do not use it
...
This is just the backend work. It is not plugged in yet because it
needs more external cleanup/refactor.
2020-08-18 21:30:10 +02:00
2eddfa85e0
Cleanup: GPU: Remove uneeded depth precision getter.
...
We always use 24bit framebuffers nowadays.
2020-08-18 21:30:10 +02:00
0f292dc072
Cleanup: GPUState: remove float variant of GPU_scissor_get
2020-08-18 21:30:10 +02:00
c78ea96528
GPUShader: Add debug labels
...
This allow better debugging inside renderdoc.
2020-08-18 21:30:10 +02:00
ba3c18f4b2
GPUShader: Add back vertformat_from_shader()
2020-08-18 21:30:10 +02:00
e8c48ce075
GPUShader: Improve auto name
...
Use macro to get calling function name. Helps debugging shaders.
2020-08-18 21:30:10 +02:00
e43e9caf1b
GPUShader: Rewrite error printing
...
Now error printing only display the line related to the error.
We also put char marker if present.
Example:
```
-- Shader Compilation Errors : MAMaterial --
10414 | node_fresnel(, facingnormal, viewposition, tmp34);
| ^
| error: syntax error, unexpected ',', expecting ')'
----------------------------------
```
2020-08-18 21:30:10 +02:00
216d78687d
GPUShader: GL backend isolation
2020-08-18 21:30:09 +02:00
df28d2c27e
Cleanup: GPU: Replace Batch uniform by shader uniform using macro
...
This is a first step into removing uniforms from GPU_batch and Imm.
2020-08-18 21:30:09 +02:00
2e908156d0
Fix T77564: VSE (and compositor background) lost stereoscopy preview
...
Issue introduced on fe045b2b77 .
Since the stereoscopy compositing (anaglyph, ...) is only done for
viewports the VSE preview and compositor need to use viewports.
Reviewed by: dfelinto
Differential Revision: https://developer.blender.org/D8472
2020-08-18 15:39:27 +02:00
673b1930d8
Merge branch 'blender-v2.90-release'
2020-08-18 14:05:26 +02:00
aba46371a1
GPUTexture: Extend CUBE_MAP_ARRAY_ARB proxy workaround to all Apple gpus
...
Related to T79716
2020-08-18 14:01:14 +02:00
41235eed1d
GPU: Avoid invalid GL API usage
...
Drawing with 0 sized buffer is prohibited.
2020-08-18 13:53:07 +02:00
fe1827df82
Fix T79782 GPU: Crash cause by shadow batch reference
...
After drawing, the batch could be reset and draw again using other
parameters.
Avoid having to track references by setting the batch pointer to NULL after
drawing.
2020-08-18 13:53:07 +02:00
6a6cb83eb3
Fix T79568 EEVEE: Film transparent not working
...
Since world shader use the same standard output and are considered opaque,
we need to set alpha as holdout.
2020-08-18 12:26:22 +02:00
9a4c019255
Cleanup: header order, trailing space
2020-08-17 12:39:08 +10:00
9762c3892e
Cleanup: spelling
2020-08-17 12:34:05 +10:00
a6447ca72d
GPU: Fix MSVC warning
2020-08-13 14:20:24 +02:00
d52f28380b
GPU: Fix issue with MDI and recent refactor
2020-08-13 14:20:24 +02:00
f349ea5508
GPUDrawList: Fix gl error with drawing without the correct VAO bound
2020-08-13 14:20:24 +02:00
985070b1ce
GPUShader: Add more uniform functions
2020-08-13 14:20:24 +02:00
ac60a67b3f
Cleanup: GPU: Remove Batch vao cache reset
...
This is done at drawtime automatically.
2020-08-13 14:20:24 +02:00