Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
This avoid an ASAN runtime error.
|
|
|
|
|
|
This also make the validation quicker by tracking the currently
bound slots.
|
|
The gizmo one was only reproducible in debug builds.
The GLImmediate one was only affecting amdpro drivers when --debug-gpu was
enabled.
|
|
This provides a bit more debugging info on MacOS.
|
|
And format to use the same callback as standard debugging layer.
|
|
Now the callbacks are setup for each debug context.
The formating has been reworked to be less verbose and make errors
and warnings stand out from the notifications.
Errors are most of the time sufficiently explicit in their message.
This also remove the support for AMD_debug_output which is 10 years old.
This is related to the Vulkan port T68990.
|
|
These are not used anymore and can be replicated using the GPUBatch API.
|
|
|
|
This is part of the Vulkan backend task T68990.
This is mostly a cleanup, however, there is a small change:
We don't use a special Vertex Array binding function for Immediate
anymore and just reuse the one for batches.
This might create a bit more state changes but this could be fixed
easily if it causes perf regression.
# Conflicts:
# source/blender/gpu/intern/gpu_context.cc
|
|
This has more meaning as it's the base class who holds the pointer.
# Conflicts:
# source/blender/gpu/opengl/gl_context.cc
|
|
|
|
- Print shader type (fragment, vertex, geom)
- Support for Apple + intel error format.
- Handle formatting a bit more gracefully.
|
|
This was affecting Mesa drivers as well as AMD pro driver. But it
might have been noticeable on other config too.
This was introduced by rBa9f2ebb21508.
|
|
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.
|
|
This is to ensure the FrameBuffer extents are always up to date.
|
|
This is now handled by FrameBuffer wrapping.
|
|
This is related to the Vulkan port T68990.
This is a full cleanup of the Framebuffer module and a separation
of OpenGL related functions.
There is some changes with how the default framebuffers are handled.
Now the default framebuffers are individually wrapped inside special
GLFrameBuffers. This make it easier to keep track of the currently bound
framebuffer state and have some specificity for operations on these
framebuffers.
Another change is dropping the optimisation of only configuring the
changed attachements during framebuffers update. This does not give
any benefits and add some complexity to the code. This might be brought
back if it has a performance impact on some systems.
This also adds support for naming framebuffers but it is currently not
used.
|
|
|
|
This fix a GL_INVALID_VALUE error on startup due to 0.0f max line width.
Also moves the max anisotropy filter to the sampler creation.
This reduces code fragmentation.
|
|
The VAO reconfiguration from the offset workaround was not working.
|
|
|
|
This is to ease the debugging process on Apple GL implementation.
|
|
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.
|
|
Regression caused by rB9443da6166f5. Forgot to clear the flag.
|
|
Linking without valid shaders works on some drivers. Avoid this case by
forcing linking step to return false.
|
|
This should avoid confusion about what is a class and what is an opaque
pointer.
|
|
This avoids the misleading inheritance.
Also cleanup by setting the blender::gpu::Shader as active shader to
avoid some casting.
|
|
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.
|
|
|
|
|
|
This was creating drawing issues on windows builds.
|
|
|
|
|
|
Should not break anything! Huh!
|
|
|
|
|
|
This isolate most GL calls to the GL backend. Still a few remains.
|
|
This is just the backend work. It is not plugged in yet because it
needs more external cleanup/refactor.
|
|
This allow better debugging inside renderdoc.
|
|
|
|
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 ')'
----------------------------------
```
|
|
|
|
Drawing with 0 sized buffer is prohibited.
|
|
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.
|
|
|