Clément Foucault
6b91c641e8
GPU: Fix clang tidy warnings
2020-09-07 14:03:03 +02:00
Clément Foucault
aa32e7a2f3
Cleanup: GPUVertBuf: Replace TRUST_NO_ONE by BLI_asserts and ifdef DEBUG
2020-09-07 13:59:51 +02:00
Clément Foucault
c38debd39f
GPUVertBuf: GL Backend Isolation
...
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.
2020-09-07 13:59:51 +02:00
Clément Foucault
bb2aeb4504
GPUVertBuf: Rename GPUVertBuf to VertBuf and add some getters
...
to avoid more typecasts.
2020-09-07 13:59:51 +02:00
Campbell Barton
267b8e1a5c
Cleanup: spelling
...
Also correct wrapped lines of example code in threads.cc.
2020-09-07 16:19:42 +10:00
Clément Foucault
d268a43b25
Cleanup: GPUVertBuf: Replace GPU_vertbuf_create by GPU_vertbuf_calloc
...
This is a simple cleanup to make naming consistent with the rest of the
module.
2020-09-06 22:13:06 +02:00
Clément Foucault
158cea83b5
GLTexture: Fix crash with --debug-gpu on windows + nvidia
...
The combination of DSA + CubeMap seems to not please this driver.
2020-09-06 22:13:06 +02:00
Clément Foucault
7ffff04e49
GPUVertBuf: Make GPUVertBuf private to the GPU module
...
This is just a cleanup to isolate the internals of the vertbuf.
This adds some getters to avoid refactor of existing code.
2020-09-06 22:13:06 +02:00
Clément Foucault
98fc3f263c
Cleanup: GLBackend: Fix missing override keywords producing warnings
2020-09-06 22:13:06 +02:00
Clément Foucault
4ea93029c6
GPUIndexBuf: GL backend Isolation
...
This is part of the Vulkan backend task T68990.
There is no real change, only making some code re-organisation.
This also make the IndexBuf completely abstract from outside the
GPU module.
2020-09-06 22:13:06 +02:00
Clément Foucault
84d67bd0a9
Cleanup: GPU: Rename GPU_element to GPU_index_buffer
...
Makes it follow the functions names.
2020-09-06 22:13:06 +02:00
Clément Foucault
8c4f7e6d04
GLState: Use unsigned long long instead of unsigned long for shifts
...
This fix a compilation warning on msvc.
2020-09-05 18:50:07 +02:00
Campbell Barton
ffec86bb62
Cleanup: clang-format
2020-09-06 02:21:27 +10:00
Campbell Barton
3a8d9198b3
Cleanup: spelling
2020-09-06 02:19:58 +10:00
Clément Foucault
581c35bea8
GLState: Fix compilation warning on MSVC
2020-09-05 18:16:13 +02:00
Clément Foucault
03b36abbe6
GLTexture: Fix undefined behavior when binding textures the first time
2020-09-05 18:13:33 +02:00
Clément Foucault
9764d3e4dc
GLDebug: Trim NVidia debug output
...
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.
2020-09-05 17:49:14 +02:00
Clément Foucault
71872e3809
GLTexture: Add Feedback loop check
...
The check is better than before as we take into
consideration the attached mip level.
2020-09-05 17:49:14 +02:00
Clément Foucault
14926a81b6
Cleanup: GPUFramebuffer: Remove unused variable
2020-09-05 17:49:14 +02:00
Clément Foucault
64490bdedb
GLTexture: Add direct state access support
2020-09-05 17:49:14 +02:00
Clément Foucault
558e1158e7
GLState: Add texture multibind and remove redundant binds
2020-09-05 17:49:14 +02:00
Clément Foucault
65a593f6ef
GPUDebug: Only enable resource checking in debug mode
2020-09-05 17:49:14 +02:00
Clément Foucault
8e4c0efbe3
Cleanup: GPUTexture: Move debug messages outside of creation function
...
# Conflicts:
# source/blender/gpu/intern/gpu_framebuffer.cc
2020-09-05 17:49:14 +02:00
Clément Foucault
ab95cdaba9
GPUTexture: Change texture creation API
...
This is to modernize the API:
- Add meaningful name to all textures (except DRW textures).
- Remove unused err_out argument: only used for offscreen python.
- Add mipmap count to creation functions for future changes.
- Clarify the data usage in creation functions.
This is a cleanup commit, there is no functional change.
# Conflicts:
# source/blender/gpu/GPU_texture.h
2020-09-05 17:49:14 +02:00
Clément Foucault
7d4adbdfab
GLTexture: Add validation for empty slots before drawing
...
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.
2020-09-05 17:49:14 +02:00
Clément Foucault
cc0410193d
GPUTexture: Implement back 3D texture resize
...
But this time implement it outside the texture module.
This makes more sense as only the volume textures need this feature.
2020-09-05 17:49:14 +02:00
Clément Foucault
895ec05212
Cleanup: GPUTexture: Clean framebuffer attachment
2020-09-05 17:49:14 +02:00
Clément Foucault
13305fb513
Cleanup: GPUFrameBuffer: Use Texture class instead of gl calls
2020-09-05 17:49:14 +02:00
Clément Foucault
b100b77fda
GLTexture: Add back texture proxy check
...
Cleanup the feature itself:
- Check 3D textures size against the correct limit.
- Add check for compressed textures.
2020-09-05 17:49:14 +02:00
Clément Foucault
31c77a14af
GPUTexture: Add support for samplers
...
This just add back the support.
This commit also includes a bit of cleanup.
# Conflicts:
# source/blender/gpu/GPU_texture.h
2020-09-05 17:49:14 +02:00
Clément Foucault
c766d9b9dc
GPUTexture: GL Backend Isolation
...
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
2020-09-05 17:49:14 +02:00
Clément Foucault
db21c12abe
GPUFramebuffer: Encapsulate single attachement clear
...
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.
2020-09-05 17:49:14 +02:00
Clément Foucault
a92d77acf7
GPUTexture: Add skeleton of the new GLTexture class
2020-09-05 17:49:14 +02:00
Clément Foucault
f72c1c4547
GPUTexture: Remove bind to edit calls
...
This is going to be unecessary after the GPU opengl texture backend refactor.
For now add a save/restore mechanism to leave the state untouched.
Also remove some calls where the caller would bind to particular binding
point and set the shader uniform.
2020-09-05 17:49:14 +02:00
Sebastian Parborg
2115232a16
Cleanup: Clang-Tidy readability-inconsistent-declaration-parameter-name fix
...
No functional changes
2020-09-04 21:04:16 +02:00
OmarSquircleArt
340cbc7f15
Fix T79803: Wrong Distance To Edge 1D Voronoi
...
The current 1D Voronoi implementation for the Distance to Edge option
computes the distance to the cells instead. This patch fixes that and
compute the distance to the edge.
Reviewed By: JacquesLucke, brecht
Differential Revision: https://developer.blender.org/D8634
2020-09-03 18:56:27 +02:00
Brecht Van Lommel
f0c376a52a
Fix T80332: principle volume shader not working for world in Eevee
...
The handling of missing volume grids for the principled volume shader was
incomplete, different inputs need different default values.
2020-09-03 15:49:41 +02:00
Campbell Barton
957346694d
Cleanup: spelling, rename attachement -> attachment
2020-09-02 10:04:50 +10:00
Campbell Barton
71aa3c864d
Cleanup: spelling
2020-09-02 09:58:26 +10:00
Clément Foucault
d6a9783b71
Cleanup: GLFrameBuffer: Reduce indentation
2020-09-01 18:42:46 +02:00
Clément Foucault
7edd60b35b
GLFramebuffer: Avoid calling method on a partially destroyed GLContext
...
This avoid an ASAN runtime error.
2020-09-01 18:42:37 +02:00
Clément Foucault
f1b10477c2
GPUOffscreen: Remove scissor and viewport state tracking
...
This was a workaround that is not needed anymore.
Fix FT80321 Cropped output with Viewport Render Animation
2020-09-01 17:22:57 +02:00
Clément Foucault
a708cdabe6
Fix T80328 Commit introduced build warnings in Windows
2020-09-01 16:16:48 +02:00
Clément Foucault
998b680e5b
UI: Widget: Add conservative raster to avoid cut widget borders
...
This avoids incorrect AA when the widget is not perfectly alligned with the
pixel grid.
2020-09-01 16:08:50 +02:00
Clément Foucault
991eb5f79c
Cleanup: GPUContext: Remove unused functions
2020-09-01 12:03:52 +02:00
Clément Foucault
53a806f6df
GPU: Move UBO binding validation to GL backend
...
This also make the validation quicker by tracking the currently
bound slots.
2020-09-01 12:03:52 +02:00
Clément Foucault
5ec0250df9
EEVEE: Volumetric: Fix Mesa Compiler error
...
The compiler does not seems to understand the `const` in the
function declaration and complains about non constant indexing
of unsized array.
2020-09-01 12:03:52 +02:00
Clément Foucault
4e06afb0a1
GL: Fix two GLerror
...
The gizmo one was only reproducible in debug builds.
The GLImmediate one was only affecting amdpro drivers when --debug-gpu was
enabled.
2020-09-01 00:30:36 +02:00
Clément Foucault
7f95d780e8
GLImmediate: Use CL_CHECK_ERROR
...
This provides a bit more debugging info on MacOS.
2020-09-01 00:30:36 +02:00
Clément Foucault
9d932b426f
GL: Move MacOS debug callback to gl_debug.cc
...
And format to use the same callback as standard debugging layer.
2020-09-01 00:30:36 +02:00