Age | Commit message (Collapse) | Author |
|
|
|
Found by valgrind, unclear if this caused an actual bug.
|
|
This was reintroduced by the wide line emulation workaround.
|
|
This makes sure no BGL call before window drawing locks the GPUState.
|
|
This was an issue for Cycles.
This also makes the `GPU_bgl*` functions less fragile by checking for
null pointers.
|
|
This reverts commit f23bf4cb109cb8f39f873c4f80acbec3f33b098c.
|
|
This reverts commit f12b0373f322b710b9fa5cebb67bdf363ff90e9f.
|
|
This directly adress the issues caused by rB536c2e0ec916.
Since the state tracking is done at a lower level, using the bgl
functions needs to be safegarded by the state manager.
The current workaround is to bypass `apply_state` when inside a
callback that used a `bgl` function.
Related to T80730.
This fix T81003.
Also this fix the default blend equation for callbacks.
Fixes T80169 T81289.
|
|
Following the most widely used convention for including todo's in
the code, that is: `TODO(name):`, `FIXME(name)` ... etc.
|
|
This makes wide line supported on MacOS and other implementation that
does not support wide line by default.
This workaround works for all Line types but only if using one of the 5
default shaders.
The workaround is completely isolated and invisible to the outside. It has
no side effect.
Note: This does not affect the GPUBatch drawing.
|
|
This was caused by a faulty default where program point size was used.
|
|
|
|
This was caused by a missing state apply.
We force the GPUState to be set after the callbacks to avoid
desync between our state tracker and the real gl state.
This fixes some issues but a better general fix for all BGL would
be better.
This fix T80297 2.91 texture alpha is not transparent
|
|
|
|
This wraps the functionality used to speedup EEVEE volumetrics.
This touches the rendering code of EEVEE as it should fix a mis-usage of
the GL barrier. The barrier changed type and location, removing an
unused barrier.
|
|
Also avoid a case where size is zero and making it impossible to change it
back.
This fix T80664 Tiny node sockets
|
|
The point size was not updated in the right branch and setting the point
size via GPU_point_size was effectively disabling its use.
|
|
This makes the GPUContext follow the same naming convention as the rest
of the module.
Also add a static getter for extra bonus style (no need for casts):
- Context::get()
- GLContext::get()
|
|
Part of the Vulkan task T68990
Isolate the last remaining gl functions.
|
|
Part of the Vulkan task T68990
Isolate the few remaining gl functions.
|
|
This makes more sense as this module has more to it than just
GL extensions.
|
|
This way it is way clearer what each viewport state is. There is
no more save and reset. The scissor test is also saved per
framebuffer.
The only rule to remember is that the viewport state (size and
origin) is reset for both the viewport and scissor when a texture
is attached or detached from an attachment slot.
|
|
Fix T79899 viewport artifacts when sculpting
|
|
This is to be used by framebuffer clearing.
|
|
|
|
This was creating drawing issues on windows builds.
|
|
|
|
|
|
Should not break anything! Huh!
|
|
|
|
|
|
And use manual save/restore mechanism.
The stack method is not used so much to be considered useful.
|
|
This isolate most GL calls to the GL backend. Still a few remains.
|
|
We now use GPU_blend for enabling / disabling blending and explicitly
set the blend equation.
|
|
|
|
|
|
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
|
|
This is just the backend work. It is not plugged in yet because it
needs more external cleanup/refactor.
|
|
|
|
This is in order to disolve GPU_draw.h into more meaningful code blocks.
All the Image related function are in `image_gpu.c`.
All the MovieClip related function are in `movieclip.c`.
The IMB module now has a connection with GPU. This is not strickly
necessary and the code could be move to `image_gpu.c` if needed.
The Image garbage collection is also ported to `image_gpu.c`.
|
|
|
|
|