Support Per-Axis Sampler Repeat Mode #100777
Draft
+1,282
−443
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes godotengine/godot-proposals#246, #44553, and #51625
Supporting this feature requires quite a few fundamental changes to parts of the core.
material_storage
, samplers can now be created as needed by callingmaterial_storage->sampler_rd_get()
. They are stored in aHashMap
with theRD::SamplerState
as the key, ensuring that duplicate samplers are never made. ThisHashMap
is never trimmed unless the whole list is delloc'd. It's, therefore, possible to build a huge number of sampler variants by requesting many different states, but I don't think this will be much of an issue in reality.samplers_inc.glsl
is removed, as this fixed subset of samplers no longer exists. This means that every shader is expected to bind the required samplers as needed.DefaultIdentifierActions.custom_samplers
has been renamed to justsamplers
and can be used to define a mapping to an existing sampler binding when neededDefaultIdentifierActions.default_filter
andDefaultIdentifierActions.default_repeat
have been removedTODO:
append_uniforms