Age | Commit message (Collapse) | Author |
|
This was a workaround that is not needed anymore.
Fix FT80321 Cropped output with Viewport Render Animation
|
|
This also make the validation quicker by tracking the currently
bound slots.
|
|
The compiler does not seems to understand the `const` in the
function declaration and complains about non constant indexing
of unsized array.
|
|
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 in order to remove GPU_draw_primitive to streamline the drawing
abstraction.
|
|
|
|
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
|
|
|
|
This also gets rid of the macro.
|
|
- Print shader type (fragment, vertex, geom)
- Support for Apple + intel error format.
- Handle formatting a bit more gracefully.
|
|
Also do not bind automatically. This is fine since the framebuffer will
update next time it's bound.
|
|
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 to make it easier to navigate captures in renderdoc.
|
|
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 is in preparation of the Framebuffer GL backend.
This is a just changing types and moving some code.
No logic is changed... almost... it just removes the context attach.
i.e: `gpu_context_add/remove_framebuffer()`
This is not needed for now and was even disabled in release.
This is part of T68990.
|
|
This was the last remaining.
|
|
The CPP Shader class does not initialize the interface attribute.
What will crash when deleting the shader.
Reviewed By: Clément Foucault
Differential Revision: https://developer.blender.org/D8740
|
|
This reverts commit c28432680971f54ebe95cc953606a3a4d3bc5c7c.
|
|
The CPP Shader class does not initialize the interface attribute.
What will crash when deleting the shader.
Reviewed By: Clément Foucault
Differential Revision: https://developer.blender.org/D8740
|
|
Silly typo was causing the error texture to not be bound.
|
|
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.
|
|
This should not cause any problem since the depth test is required
in order to draw to the depth buffer and this is not altered by
this change.
To be on the safe side, we still restor the mask after altering it.
|
|
Fix T79899 viewport artifacts when sculpting
|
|
This was caused by a NULL name.
|
|
This replace `GPU_clear()` by `GPU_clear_color()` and `GPU_clear_depth()`.
Since we always set the clear value before clearing, it is unecessary
to track the clear color state.
Moreover, it makes it clearer what we clear the framebuffer to.
|
|
This avoid breaking sync of the state object. Also avoid more hazard.
|
|
This is to be used by framebuffer clearing.
|
|
This changes the state of occlusion queries quite a bit. Now scissors is
explicitely disabled and we enabled color write.
I still don't understand why we now need this. This patch is just trial and
error on an affected setup. Note that on the same computer, renderdoc
was not able to capture the regression (the regression did not manifest
during capture).
Regression likely introduced by rB5f414234ddea
|
|
|
|
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.
|
|
The shader name is required with the latest changes.
|
|
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 follows the GPU module naming of other buffers.
We pass name to distinguish each GPUUniformBuf in debug mode.
Also remove DRW_uniform_buffer interface.
|
|
|
|
This fixes T79945 Gizmos don't work in Edit Mode
|
|
|
|
|
|
|
|
This was creating drawing issues on windows builds.
|
|
|
|
|
|
|
|
also fix a small issue in GPU_texture_clear.
|