Age | Commit message (Collapse) | Author |
|
This fix a compilation warning on msvc.
|
|
|
|
|
|
|
|
|
|
These buffer detailed infos are not needed unless going deep into
perf. profiling, in which case you can still disable this compile option.
This makes user report log much more readable.
|
|
The check is better than before as we take into
consideration the attached mip level.
|
|
|
|
|
|
|
|
This is to have better error detection in debug builds.
This is not a replacement for a full check like in renderdoc but it
might catch some issues early on.
|
|
|
|
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
|
|
This is in preparation of using it to clear single texture.
Also includes minor cleanups about not using tex target in
assert and adding enum operators.
|
|
|
|
|
|
|
|
|
|
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.
|