Commit Graph

5580 Commits

Author SHA1 Message Date
Clément Foucault
22c514b95c Merge branch 'blender-v4.3-release' 2024-11-06 13:03:48 +01:00
Clément Foucault
dd01858959 GPU: Avoid assert caused by overlapping attribute in material shaders
This was caused by `drw_ResourceID` taking one vertex input
(at slot 15) which was then also used by material shaders.

Starting material shaders at 14 in this case avoid the overlap.

Note that this reduces the amount of supported attribute when
using the workarounds by one.
2024-11-06 13:03:32 +01:00
Clément Foucault
8c0bd61342 Merge branch 'blender-v4.3-release' 2024-11-05 17:40:49 +01:00
Clément Foucault
750a9af518 Fix #129705: EEVEE: Light Probe RAM Pool Crash on MacOS
Crash manifested after the inclusion of #128877.
The very tall 3D texture tested by the new code
were not supported / tested by the Metal Backend.

Simply adding the appropriate upfront checks fixes
the issue.

Needs to be backported to 4.2
2024-11-05 17:37:02 +01:00
Clément Foucault
43b5e2d0ed Fix: EEVEE: Add buffer workaround for stencil classification
Adding a dummy storage buffer to the classification shader
seems to fix the issue on Qualcomm drivers (WoA).

The workaround is added to the force workaround option to
allow other platforms to test the fix.

Rel #122837

Pull Request: https://projects.blender.org/blender/blender/pulls/129857
2024-11-05 17:12:28 +01:00
Clément Foucault
118ca96c8a GPU: Enable shader interface check for geometry shader fallback 2024-11-05 15:07:56 +01:00
Jeroen Bakker
e5dcb019a9 Merge branch 'blender-v4.3-release' 2024-11-05 13:23:05 +01:00
Jeroen Bakker
fe8bc5100d Cleanup: Remove compilation warning
Introduced by !129775

Pull Request: https://projects.blender.org/blender/blender/pulls/129855
2024-11-05 13:22:18 +01:00
Campbell Barton
8bf245ad51 Merge branch 'blender-v4.3-release' 2024-11-05 23:05:43 +11:00
Campbell Barton
b53c20db25 EEVEE: remove DNA/RNA for values that are no longer in use
Remove values from EEVEE which are no longer used.

Ref !129832
2024-11-05 23:00:29 +11:00
Jeroen Bakker
66c7c6959a Merge branch 'blender-v4.3-release' 2024-11-05 12:45:01 +01:00
Jeroen Bakker
b18a460ad7 Fix #129265: Clearing depth attachments on AMD official driver
When using AMD official driver clearing depth attachments can fail.
I assume it is related to previous pipeline states and dynamic rendering
that don't require the correct pipeline state for clearing depth
attachments.

![image](/attachments/e5b97c3b-2551-4600-8cbe-4c8fc71d9feb)

Co-authored-by: jeroen@blender.org <Jeroen Bakker>
Pull Request: https://projects.blender.org/blender/blender/pulls/129852
2024-11-05 12:44:17 +01:00
Jeroen Bakker
a08151f0f4 Merge branch 'blender-v4.3-release' 2024-11-05 08:07:55 +01:00
Jeroen Bakker
f76410329b Vulkan: Disable Optimizations for Qualcomm
Qualcomm driver can not handle the optimized SPIR-V that Blender
creates. According to their driver engineers this is an issue in
shaderc. As we are late in the release process they asked us to disable
the optimizations.

In Blender 4.4 we are planning to update shaderc what might fix the
issue. This should be retested after the update.

Pull Request: https://projects.blender.org/blender/blender/pulls/129775
2024-11-05 08:05:42 +01:00
Clément Foucault
94a5f541c3 GPU: Improve GLSL-C++ compatibility
Add a few missing operator/functions and fix some argument
type deduction problems.
2024-11-05 00:39:10 +01:00
Hans Goudey
aa62c1b5d1 Fix #129741: Two issues creating GPU shader from Python
1. Log printing casted a span of `StringRefNull` to a span of `char **`
2. Creating the shader tried to create `StringRefNull` from `nullptr`.
2024-11-03 10:49:16 +01:00
Clément Foucault
afaa315418 GPU: Printf: Print buffer content even in case of overflow
The start of the buffer is ensured to be correct. So there
is no downside in printing the content of the overflowed
buffer.

At least, we get a feedback at which command is flooding it.
2024-11-02 21:51:26 +01:00
Campbell Barton
15c207a294 Merge branch 'blender-v4.3-release' 2024-11-02 17:34:00 +11:00
Campbell Barton
4df285ccd5 Cleanup: move function comments into headers or implementation notes
For C/C++ doc-strings should be located in headers,
move function comments into the headers, in some cases merging
with existing doc-strings, in other cases, moving implementation
notes into the function body.
2024-11-02 17:27:09 +11:00
Campbell Barton
e46c58df7c Merge branch 'blender-v4.3-release' 2024-11-02 15:44:22 +11:00
Campbell Barton
99387c0749 Cleanup: spelling in comments, docs & error 2024-11-02 15:43:27 +11:00
Clément Foucault
d9ff375e7e GPU: GLSL-C++ Stubs: Make compilation possible
- Add `main` workaournd.
- Define out create info class when compiling with stubs.
- Move interfaces and info namespace to global namespace.
2024-11-01 23:38:22 +01:00
Clément Foucault
01236be188 Cleanup: GPU: Remove unused shader files
These shaders have not been used for a long time.
2024-11-01 23:36:45 +01:00
Clément Foucault
e311c6dd4f Cleanup: Metal: Fix clang tidy warnings
_No response_

Pull Request: https://projects.blender.org/blender/blender/pulls/129656
2024-11-01 20:23:18 +01:00
Hans Goudey
9b97ba1462 Cleanup: GPU: Avoid raw pointers for shader API strings
Avoid measuring the length of strings repeatedly by passing their
length along with their data with `StringRefNull`. Null termination
seems to be necessary still for passing the shader sources to OpenGL.
Though I doubt this is a bottleneck, it's still nice to avoid overhead from
string operations and this helps move in that direction.

Pull Request: https://projects.blender.org/blender/blender/pulls/127702
2024-11-01 20:00:31 +01:00
Clément Foucault
9ee81411bf GPU: Multithread compilation of shaders during tests 2024-11-01 18:57:22 +01:00
Clément Foucault
d2c378984d Cleanup: GPU: Avoid glsl functions with only one void argument 2024-11-01 18:57:22 +01:00
Clément Foucault
47f7aaa2cc Merge branch 'blender-v4.3-release' 2024-11-01 12:16:38 +01:00
Jason Fielder
7fbc9e9428 Fix: Metal: Memory leaks identified by Instruments and Xcode memory graph.
Running Xcode memory graphs and the Instruments tools revealed
memory leaks caused, in the main, by over-retained objects.
This removes the unnecessary 'retains' and adds some asserts
to guard against over-retaining in the future.

There are a few memory leaks remaining involving PyUnicode_DecodeUTF8
but I am unable to identify the cause of these at this time.

Authored by Apple: James McCarthy

Pull Request: https://projects.blender.org/blender/blender/pulls/129117
2024-11-01 11:56:51 +01:00
Clément Foucault
324517fd78 Cleanup: GPU: Fix clang tidy warnings
Removes some other things like:
- `TRUST_NO_ONE` which was the same as `#ifndef NDEBUG`.
- Replace `reinterpret_cast` by `unwrap`

Pull Request: https://projects.blender.org/blender/blender/pulls/129631
2024-10-31 15:18:29 +01:00
Clément Foucault
09fb4b498a GPU: Add more stubs for C++ shader compilation 2024-10-31 13:13:15 +01:00
Clément Foucault
0deec1005c GPU: Remove some warnings and errors in GLSL C++ Stubs 2024-10-31 10:18:32 +01:00
Clément Foucault
1b130f651a Fix: Metal: Remove some more warning & errors
Fix by either changing the user level code,
or by removing the warnings that are not helpful.
2024-10-30 14:58:26 +01:00
Clément Foucault
7c979d6d40 Fix: Metal: Error caused by missing const_cast
Error introduced by 7dc43b7dd2
2024-10-29 23:55:24 +01:00
Clément Foucault
7dc43b7dd2 Fix: Metal: Remove some more shader compilation warnings 2024-10-29 21:45:03 +01:00
Clément Foucault
133f9a31bf Fix: Vulkan: Incorrect error logging
This was broken by the new filename hash and
line directives.

Parsing the filename hash and using the
same logic as GL fixes the issue.
2024-10-29 18:08:25 +01:00
Clément Foucault
e9298dced4 GPU: Avoid ShaderCreateInfo object directly inside Map
This avoid uneeded big internal allocation for the map.
2024-10-26 13:51:45 +02:00
Omar Emara
ba5c6c8682 Compositor: Implement Chroma Matte for new CPU compositor
Reference #125968.
2024-10-25 11:25:55 +03:00
Campbell Barton
4a69ede005 Cleanup: spelling in strings 2024-10-23 13:14:37 +11:00
Campbell Barton
7cacd0da46 Cleanup: suppress unknown source files from "make check_cmake" 2024-10-23 12:37:51 +11:00
Clément Foucault
6cc4e51e0a Fix: GPU: Shader error line broken for NVidia drivers
Previously the source was not set and would always return 0.
Now it correctly returns the filename hash.
2024-10-22 23:31:52 +02:00
Clément Foucault
3035fd1c36 GPencil: Port geometry shader to primitive expansion API
This removes the need for the geometry shader and the
workaround path for Metal.

Note that creating 2 batches for each stroke might become
a bottleneck in bigger scenes. But currently the bottleneck
is always be the fill algorithm. It can be optimized further
if needed.

Rel #127493

Pull Request: https://projects.blender.org/blender/blender/pulls/129274
2024-10-21 16:25:24 +02:00
Jacques Lucke
b5eb379e81 Merge branch 'blender-v4.3-release' 2024-10-21 15:34:27 +02:00
Jason Fielder
4408628a94 Fix: Metal: Resource leak when closing before all compilation batches have finished.
Addresses the case when Blender is shutdown before the
parallel compiler has finished processing all the shader batches.
The parallel compiler destructor will now attempt to terminate all
of the outstanding batches and free the shaders.

Authored by Apple: James McCarthy

Pull Request: https://projects.blender.org/blender/blender/pulls/129172
2024-10-21 14:58:50 +02:00
Clément Foucault
46c452dfc3 GPU: Remove shader builder
There is no need for this complexity anymore
as we now have the shader unit tests.

Pull Request: https://projects.blender.org/blender/blender/pulls/129014
2024-10-21 14:00:12 +02:00
Clément Foucault
f38827802a Fix: GPU: Broken shader printf support
Was using wrong type of data offset and not removing
the quote when outputing the strings.
2024-10-16 17:01:17 +02:00
Campbell Barton
5a561c6aeb Cleanup: spelling in comments 2024-10-16 21:10:49 +11:00
Campbell Barton
10960b99c9 Merge branch 'blender-v4.3-release' 2024-10-16 21:08:15 +11:00
Clément Foucault
c91baf1cdd GPU: GLSL Preprocess: Avoid parsing includes as string
Remove them before string parsing
2024-10-16 10:30:35 +02:00
Falk David
30adc33730 Fix #128827: GPv3: Bucket fill doesn't work on macOS
The issue was that the shader `gpu_shader_gpencil_stroke_vert_no_geom.glsl`
assumed a wrong format of the color attribute (`uchar4`  instead of `float4`).

The fix uses `vertex_fetch_attribute` with `float4`.

Pull Request: https://projects.blender.org/blender/blender/pulls/129072
2024-10-16 10:29:07 +02:00