Age | Commit message (Collapse) | Author |
|
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.
|
|
The underlying type of the enum cannot be fixed here due to its usage
in C code.
All the values possible in the width of the underlying type are not
valid for an enum.
Only 0 to (2*max - 1) if all enumerators are unsigned.
So the macro asks for the biggest value among the //listed// ones.
If any enumerator C is set to say `A|B`, then C would be the maximum.
(2*max-1) is used as the mask.
The warnings (for each enum modified in this commit):
GPU_vertex_buffer.h:43:1: runtime error: load of value 4294967291
which is not a valid value for type 'GPUVertBufStatus'
https://github.com/llvm/llvm-project/commit/1c2c9867
Ref T81340
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D9067
|
|
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.
|
|
This path makes use of more framebuffers when using the gpu workarounds.
Increase the MAX FBO attachments per texture. Maybe we could use a growing
vector in the future.
|
|
|
|
|
|
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 removes the limitation of the sculpt overlays not being visible
with modifiers active.
Reviewed By: fclem
Maniphest Tasks: T68900
Differential Revision: https://developer.blender.org/D8673
|
|
This might be dangerous because StringRef is not guaranteed to be
null-terminated and STREQ assumes null termination.
|
|
|
|
This makes the debugging easier.
|
|
This makes the debugging easier.
|
|
This is a nice way to check certain GPU codepaths only for some
regions or callers paths.
|
|
All the changes made in the branch `soc-2020-fluid-tools` are included in this patch.
**Major changes:**
=== Viewport Display ===
- //Raw voxel display// or //closest (nearest-neighbor)// interpolation for displaying the underlying voxel data of the simulation grids more clearly.
- An option to display //gridlines// when the slicing method is //single//.
==== Grid Display ====
- Visualization for flags, pressure and level-set representation grids with a fixed color coding based on Manta GUI.
==== Vector Display ====
- //**M**arker **A**nd **C**ell// grid visualization options for vector grids like velocity or external forces.
- Made vector display options available for external forces.
==== Coloring options for //gridlines// ====
- Range highlighting and cell filtering options for displaying the simulation grid data more precisely.
- Color gridlines with flags.
- Also, made slicing and interpolation options available for Volume Object.
Reviewed By: JacquesLucke, sebbas
Differential Revision: https://developer.blender.org/D8705
|
|
Fix wrong logic.
|
|
Found by address sanitizer.
|
|
|
|
This was caused by a faulty default where program point size was used.
|
|
|
|
Debug groups makes it easier to view from where an error comes from.
The backend can also implement its own callback to make it easier to
follow the API call structure in frame debuggers.
|
|
|
|
|
|
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
|
|
This was caused by an uninitialized variable that was left
unchanged when calling GPU_vertformat_clear.
|
|
This allows subsequent redraw to work just like before.
However a better safeguard system against setting the uniforms in the
wrong shader would be nice to have.
|
|
|
|
The point size was not updated in the right branch and setting the point
size via GPU_point_size was effectively disabling its use.
|
|
Memory leak is introduced as test cases reinitializes the GPU stack.
Added a call to GPU_backend_exit to fix this.
In GPU_backend_exit the GPU backend was destroyed but the pointer wasn't
reset for reuse. This patch also clears the pointer to be reused.
|
|
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()
|
|
- Use the syntactic wrap/unwrap method to make code more readable.
- Update comment about hidden struct behind opaque types.
- Cleanup GPUDrawList type.
|
|
This is a cleanup.
|
|
This avoids unecessary complexity.
Also makes the GPUImmediate threadsafe by using a threadlocal imm variable.
|
|
Part of the Vulkan task T68990
Isolate the last remaining gl functions.
|
|
Part of the Vulkan task T68990
Isolate the few remaining gl functions.
|
|
Also use back-slash instead of '@'.
|
|
This is part of the Vulkan task T68990.
This introduce a new GLQueryPool for managing queries in an
implementation agnostic manner.
This modify the GPU selection query to use this new object.
This also make use of blender::Vector for better code quality.
No real functionnal change.
|
|
This is part of the Vulkan task T68990
This is just a cleanup.
|
|
This is to make use of it in selection code.
|
|
This makes it easier to follow.
Also removes the GL related functions inside gpu_context.cc.
|
|
This is part of the Vulkan task T68990
This is a simple cleanup.
|