Age | Commit message (Collapse) | Author |
|
Also use doxy style function reference `#` prefix chars when
referencing identifiers.
|
|
|
|
With the compute pipeline calculation can be offloaded to the GPU.
This patch only adds the framework for compute. So no changes for users at
this moment.
NOTE: As this is an OpenGL4.3 feature it must always have a fallback.
Use `GPU_compute_shader_support` to check if compute pipeline can be used.
Check `gpu_shader_compute*` test cases for usage.
This patch also adds support for shader storage buffer objects and device only
vertex/index buffers.
An alternative that had been discussed was adding this to the `GPUBatch`, this
was eventually not chosen as it would lead to more code when used as part of a
shading group. The idea is that we add an `eDRWCommandType` in the near
future.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D10913
|
|
|
|
|
|
|
|
|
|
|
|
Replace `NULL` with `nullptr` in C++ code.
No functional changes.
|
|
|
|
Everything's in the title...
|
|
Following the most widely used convention for including todo's in
the code, that is: `TODO(name):`, `FIXME(name)` ... etc.
|
|
This makes it possible to disable all the extensions when forcing
workarounds.
Also it will allow future options to selectively disable each extension
to know which one is buggy.
|
|
This is to improve debugging on older hardware that may not support
4.3 debug capabilities (like Macs).
This avoids sprinkling glGetErrors manually. This might still be needed
to find the root cause since not all functions are covered.
This overrides the functions pointers that GLEW have already init.
This is only enabled if using --debug-gpu option and the debug extension
are not available.
This also cleanup the usage of GLContext::debug_layer_support and use
wrapper to set object labels.
|
|
|
|
This makes it easier to see what each sampler is supposed to be.
|
|
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()
|
|
This makes it easier to follow.
Also removes the GL related functions inside gpu_context.cc.
|
|
This makes more sense as this module has more to it than just
GL extensions.
|
|
This is to remove an explicit opengl dependence to GPU_extension.
|
|
This is part of the Vulkan task T68990.
This commits changes a few things:
- Rename extensions to capabilities (but left the file name untouched).
- Cubemap mip render workaround detection is rewritten using gl
commands to avoid using the GPU API before initialization.
- Put all the capabilities that are only relevant for the GL backend
inside GLContext as static variables.
- Cleanup the names of the limit variables.
- Separate all GL related workaround search inside the GL module.
|
|
Part of the Vulkan port T68990
This makes a few changes in how the data is being handled by the
backend to allow more flexibility in the future.
The overall code logic is left unchanged.
|
|
to avoid more typecasts.
|
|
The combination of DSA + CubeMap seems to not please this driver.
|
|
This is just a cleanup to isolate the internals of the vertbuf.
This adds some getters to avoid refactor of existing code.
|
|
|
|
The check is better than before as we take into
consideration the attached mip level.
|
|
|
|
Cleanup the feature itself:
- Check 3D textures size against the correct limit.
- Add check for compressed textures.
|
|
This just add back the support.
This commit also includes a bit of cleanup.
# Conflicts:
# source/blender/gpu/GPU_texture.h
|
|
This is a massive cleanup needed for vulkan support T68990. It provides:
- More meaningful enums with conversion functions.
- Less hacky supports of arrays and cubemaps (all considered layered).
- More inline with the stateless design of vulkan and modern GL.
- Methods Fallbacks are using framebuffer functions that are wrapped
instead of implementing inside the texture module.
What is not in there:
- API change.
- Samplers support (breaks a few effects).
# Conflicts:
# source/blender/gpu/GPU_texture.h
|
|
|