Skip to content

GS/HW: Disable HalfPixelOffset and ForceEvenSpritePosition on texture shuffles.#14283

Open
TJnotJT wants to merge 1 commit intoPCSX2:masterfrom
TJnotJT:gs-fix-hpo-shuffle
Open

GS/HW: Disable HalfPixelOffset and ForceEvenSpritePosition on texture shuffles.#14283
TJnotJT wants to merge 1 commit intoPCSX2:masterfrom
TJnotJT:gs-fix-hpo-shuffle

Conversation

@TJnotJT
Copy link
Copy Markdown
Contributor

@TJnotJT TJnotJT commented Apr 11, 2026

Description of Changes

Disable UserHacks_HalfPixelOffset and UserHacks_ForceEvenSpritePosition on texture shuffle draws. Applies to upscaling only.

Rationale behind Changes

Fixes a regression from #14259.

The quad conversion in texture shuffles already aligns the coordinates, so adding a HPO or even sprite position may misalign it.

Suggested Testing Steps

Try games with texture shuffles on a HW renderer with upscaling. An example dump from Sly 2 is attached.

Sly_2_-_Band_of_Thieves_SCUS-97316_20240110145658.gs.xz.zip

Master 2x
147552_f00047_fr1_00700_C_32

PR 2x
147552_f00047_fr1_00700_C_32

Did you use AI to help find, test, or implement this issue or feature?

No.

@TJnotJT TJnotJT force-pushed the gs-fix-hpo-shuffle branch from 183981c to 9d08ca3 Compare April 11, 2026 19:24
Quad conversion in texture shuffles is already aligned and not intended to interact with upscaling coord fixes.
@TJnotJT TJnotJT force-pushed the gs-fix-hpo-shuffle branch from 9d08ca3 to 98f6cfe Compare April 11, 2026 20:45
@TJnotJT TJnotJT marked this pull request as ready for review April 11, 2026 20:45
@TJnotJT
Copy link
Copy Markdown
Contributor Author

TJnotJT commented Apr 11, 2026

Last push disables HPO for XY (before only had it for UV) and force even sprite position for texture shuffles.

Appears to fix the issues in question, and reduce artifacts in a few other dumps with upscaling.

Added some misc. cleanup/logging to texture shuffle code.

@TJnotJT TJnotJT changed the title GS/HW: Disable UserHacks_HalfPixelOffset on texture shuffles. GS/HW: Disable UserHacks_HalfPixelOffset and UserHacks_ForceEvenSpritePosition on texture shuffles. Apr 11, 2026
@TJnotJT TJnotJT changed the title GS/HW: Disable UserHacks_HalfPixelOffset and UserHacks_ForceEvenSpritePosition on texture shuffles. GS/HW: Disable HalfPixelOffset and ForceEvenSpritePosition on texture shuffles. Apr 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants