53a806f6df
GPU: Move UBO binding validation to GL backend
...
This also make the validation quicker by tracking the currently
bound slots.
2020-09-01 12:03:52 +02:00
9d932b426f
GL: Move MacOS debug callback to gl_debug.cc
...
And format to use the same callback as standard debugging layer.
2020-09-01 00:30:36 +02:00
a1df2fc443
Cleanup: GPU: Remove unused attr_binding and primitive code
2020-08-31 15:15:04 +02:00
949d92ad5d
Fix T79811 MacOS: Edit Mode - vertex/edge/face selection is missing
...
The VAO reconfiguration from the offset workaround was not working.
2020-08-25 17:42:07 +02:00
b43f4fda19
GL: Add error checking function
...
This is to ease the debugging process on Apple GL implementation.
2020-08-25 15:02:34 +02:00
ed4c83f61f
T79811 MacOS: Edit Mode - vertex/edge/face selection is missing
...
This is quite embarassing... it was returning the base instance instead of
the correct vao. No wonder that it was causing crash and at most drawing
issues.
2020-08-24 19:25:43 +02:00
7ce764c9ec
Fix T79896 Awful performance with Dyntopo on
...
Regression caused by rB9443da6166f5. Forgot to clear the flag.
2020-08-24 13:52:01 +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
5a957c0299
GPUShaderInterface: Fix use after free crash
2020-08-20 17:57:05 +02:00
19d72175ba
GPUShaderInterface: GL backend isolation
2020-08-20 16:11:14 +02:00
536c2e0ec9
GPUState: Only apply state before drawing
2020-08-18 21:30:10 +02:00
216d78687d
GPUShader: GL backend isolation
2020-08-18 21:30:09 +02:00
41235eed1d
GPU: Avoid invalid GL API usage
...
Drawing with 0 sized buffer is prohibited.
2020-08-18 13:53:07 +02:00
efc97b3919
GPUBatch: GL backend isolation
...
This changes the drawing paradigm a bit. The VAO configuration is done
JIT-style and depends on context active shader.
This is to allow more flexibility for implementations to do optimization
at lower level.
The vao cache is now its own class to isolate the concept. It is this
class that is reference by the GLContext for ownership of the containing
VAO ids.
2020-08-13 14:20:24 +02:00
47bfb0f7ad
GPUBatch: Move allocator to backend
2020-08-13 14:20:24 +02:00