| Age | Commit message (Collapse) | Author |
|
* Another workaround for NVIDIA driver 496.13 shader bug
This might work better than the other one. Give this a test to see if it fixes/doesn't fix issues with the other one.
The problem seems to be when any variable assignment happens with a negation. `temp_1 = -temp_0;` seems to trigger weird behaviour, but `temp_1 = 0.0 - temp_0;` does not. This also might to extend towards integer types?
* Update cache version
* Add disclaimer comment
* Wording
|
|
* Initial tessellation shader support
* Nits
* Re-arrange built-in table
* This is not needed anymore
* PR feedback
|
|
* Add missing U8/S8 types from shader I2I instruction
* Better names
* Fix dstIsSignedInt
|
|
* Extent bindless elimination to work with masked handles
* Extend bindless elimination to catch shifted pattern, refactor handle packing/unpacking
|
|
* Implement SHF shader instruction
* Shader cache version bump
* Better name
|
|
* Rewrite shader decoding stage
* Fix P2R constant buffer encoding
* Fix PSET/PSETP
* PR feedback
* Log unimplemented shader instructions
* Implement NOP
* Remove using
* PR feedback
|
|
* Only make render target 2D textures layered if needed
* Shader cache version bump
* Ensure topology is updated on channel swap
|
|
* Use shader subgroup extensions if shader ballot is not supported
* Shader cache version bump + cleanup
* The type is still required on the table
|
|
* Fix TXQ for 3D textures.
Assumes the texture is 3D if the component mask contains Z.
This fixes a bug in UE4 games where parts of the map had garbage pointers to lighting voxels, as the lookup 3D texture was not being initialized. Most notable game is THPS1+2.
May need another PR to keep image store data alive and properly flush it in order using the AutoDeleteCache.
* Get sampler type for TextureSize from bound textures.
|
|
* Initial Implementation
* Further improvements (no support for float/64-bit types)
* Merge atomic and reduce instructions, add missing format switch
* Fix rebase issues.
* Not used.
* Whoops. Fixed.
* Partial implementation of inc/dec, cleanup and TODOs
* Remove testing path
* Address Feedback
|
|
* Fix out-of-bounds shader thread shuffle
* Shader cache version bump
|
|
* Initial support for shader attribute indexing
* Support output indexing too, other improvements
* Fix order
* Address feedback
|
|
|
|
|
|
|
|
* Replace BGRA and scale uniforms with a uniform block
* Setting the data again on program change is no longer needed
* Optimize and resolve some warnings
* Avoid redundant support buffer updates
* Some optimizations to BindBuffers (now inlined)
* Unify render scale arrays
|
|
* Use a new approach for shader BRX targets
* Make shader cache actually work
* Improve the shader pattern matching a bit
* Extend LDC search to predecessor blocks, catches more cases
* Nit
* Only save the amount of constant buffer data actually used. Avoids crashes on partially mapped buffers
* Ignore Rd on predicate instructions, as they do not have a Rd register (catches more cases)
|
|
* shadertools: Prepare for new target Langugaes and APIs
This improves shader tools command line by adding support for target
language and api.
* Address gdkchan's comments
|
|
|
|
* Unscale textureSize when resolution scaling is used
* Fix textureSize on compute
* Flag texture size as needing res scale values too
|
|
translator (#2402)
|
|
* Fix shader default output values
* Shader cache version bump
|
|
* Fix texture sampling with depth compare and LOD level or bias
* Shader cache version bump
* nit: Sorting
|
|
|
|
* Pass all inputs when geometry shader passthrough is enabled
* Shader cache version bump
|
|
|
|
(after BRX) (#2367)
* End shader decoding when reaching an infinite loop
The NV shader compiler puts these at the end of shaders.
* Update shader cache version
|
|
sampler (#2339)
|
|
* Fix shaders with mixed PBK and SSY addresses on the stack
* Address PR feedback and nits
|
|
* Do not attempt to normalize SNORM image buffers on shaders
* Shader cache version bump
|
|
|
|
|
|
* Fix buffer and texture uses not being propagated for vertex A/B shaders
* Shader cache version bump
|
|
descriptor and resolution scale regressions (#2298)
* Fix constant buffer array size when indexing is used
* Change default QueryConstantBufferUse value
* Fix more regressions
* Ensure proper order
|
|
* Move shader resource descriptor creation out of the backend
* Remove now unused code, and other nits
* Shader cache version bump
* Nits
* Set format for bindless image load/store
* Fix buffer write flag
|
|
* Pass CbufSlot when getting info from the texture descriptor
Fixes some issues with bindless textures, when CbufSlot is not equal to the current TextureBufferIndex.
Specifically fixes a random chance of full screen colour flickering in Super Mario Party.
* Apply suggestions from code review
Oops
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
|
|
* Fix shader buffer write flag on atomic instructions
* Shader cache version bump
|
|
* Only enable clip distance if written to on shader
* Signal InstanceId use through FeatureFlags
* Shader cache version bump
|
|
* Improve shader global memory to storage pass
* Formatting and more comments
* Shader cache version bump
|
|
* Implement shader HelperThreadNV
* Bump shader cache version
* Use gl_HelperInvocation since its supported across all vendors
* Nit
|
|
* Fix ZN flags set for shader instructions using RZ.CC dest
* Shader cache version bump and nits
|
|
|
|
* Salieri: Add blacklist system and blacklist shaders using bindless
Currently the shader cache doesn't have the right format to support
bindless textures correctly and may cache shaders that it cannot rebuild
after host invalidation.
This PR address the issue by blacklisting shaders using bindless
textures.
THis also support detection of already cached broken shader and handle removal
of those.
* Move to a feature flags design to avoid intrusive changes in the translator
This remove the auto correct behaviour
* Reduce diff on TranslationFlags
* Reduce comma on last entry of TranslationFlags
* Fix inverted logic and remove leftovers
* remove debug edits oops
|
|
This allows bindless handles to be found for image/texture instructions with predicates, when the assignment of the texture handle is within the same predicate.
This seems to cover the remaining bindless handles that compilers seem to be creating due to optimizations.
Will affect newer UE4 games, and games by NdCube (Super Mario Party, Clubhouse Games)
|
|
* Improve Buffer Textures and flush Image Stores
Fixes a number of issues with buffer textures:
- Reworked Buffer Textures to create their buffers in the TextureManager, then bind them with the BufferManager later.
- Fixes an issue where a buffer texture's buffer could be invalidated after it is bound, but before use.
- Fixed width unpacking for large buffer textures. The width is now 32-bit rather than 16.
- Force buffer textures to be rebound whenever any buffer is created, as using the handle id wasn't reliable, and the cost of binding isn't too high.
Fixes vertex explosions and flickering animations in UE4 games.
* Set ImageStore flag... for ImageStore.
* Check the offset and size.
|
|
* Simplify handling of shader vertex A
* Theres no transformation feedback, its transform
* Merge TextureHandlesForCache
|
|
* Use multiple dest operands for shader call instructions
* Passing opNode is no longer needed
|
|
* Implement geometry shader passthrough
* Cache version change
|
|
(#1964)
* Support multiple destination operands on shader IR and shuffle predicates
* Cache version change
|
|
|