Repository navigation
Conversation
A texture copied block for block from a storage image had no sRGB view, so sampling it through an S# with FORCE_DEGAMMA threw. Its image is now created mutable when its format has an sRGB twin, and the view is prepared as for the other textures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
Collaborator
12 tasks done
Contributor
Author
|
@oneandonlydean thanks, agreed. I posted the results on #7799, rerun on its current head: #7799 (comment) AI-assisted: yes (Claude Code) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
A texture that is copied block for block from a storage image (
Texture::BlockCopyTag) never got an sRGB view. Sampling one through an S# withFORCE_DEGAMMAtherefore stopped with "a texture of guest format N, which is not sRGB and has no sRGB view, is sampled through a sampler that forces sRGB decoding". Textures read from guest memory and views of a storage image already have one.The block-copy image is now created with
VK_IMAGE_CREATE_MUTABLE_FORMAT_BITwhen its format has an sRGB twin (SrgbTwinFormat). It then prepares its sRGB view like the other two constructors do. A format without a twin is unchanged and still throws.On
mainthis affects BC textures read while their blocks are still pending in a 32x2 or 32x4 uint storage image. The PS4 path of #6977 also block-copies a smaller GCN view of a render target. Trivial Pursuit Live! (CUSA03312) samples such an8_8_8_8_UNORMview withFORCE_DEGAMMAbefore its language menu.Tested
Windows 11 Pro 26300, WinLibs GCC 15.2.0, Release.
agc_driver_bc_block_copygains a case for BC7 and BC1: the pending blocks are sampled throughFORCE_DEGAMMAand must match, bit for bit, the same blocks sampled after they are stored. The stored sample must also differ from a sample without the bit. Onmain'sTexture.cppthe new case fails with the error above; with the change it passes.agc_driver_bc_block_copyandagc_driver_image_sample_force_degammaran onmainand on this branch withANYPS5_REQUIRE_VULKAN=1,ANYPS5_NO_SHADER_CACHE=1andVK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation(ctest -R ... -V), on both GPUs below. Both pass in all four runs. No log containswas not found but was requested by env var VK_INSTANCE_LAYERS, and none contains aVUID-line.tools/check_conventions.py --base origin/mainpasses.tools/pr_overlap.pylists many open PRs that touchTexture.cpp. Of those, only fix(agc): reclaim idle images safely during cache creation #7800 changes the block-copy constructor, and only its memory allocation.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)🤖 Generated with Claude Code