Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #9781 from Techjar/bbox-round-down
VideoCommon: Round bounding box coordinates down and remove pixel center offset
  • Loading branch information
JMC47 committed Jun 5, 2021
2 parents bd7c5bd + 83d5570 commit 36871c9
Showing 1 changed file with 1 addition and 11 deletions.
12 changes: 1 addition & 11 deletions Source/Core/VideoCommon/PixelShaderGen.cpp
Expand Up @@ -495,19 +495,9 @@ void UpdateBoundingBoxBuffer(int2 min_pos, int2 max_pos) {{
}}
void UpdateBoundingBox(float2 rawpos) {{
// The pixel center in the GameCube GPU is 7/12, not 0.5 (see VertexShaderGen.cpp)
// Adjust for this by unapplying the offset we added in the vertex shader.
const float PIXEL_CENTER_OFFSET = 7.0 / 12.0 - 0.5;
float2 offset = float2(PIXEL_CENTER_OFFSET, -PIXEL_CENTER_OFFSET);
#ifdef API_OPENGL
// OpenGL lower-left origin means that Y goes in the opposite direction.
offset.y = -offset.y;
#endif
// The rightmost shaded pixel is not included in the right bounding box register,
// such that width = right - left + 1. This has been verified on hardware.
int2 pos = iround(rawpos * cefbscale + offset);
int2 pos = int2(rawpos * cefbscale);
// The GC/Wii GPU rasterizes in 2x2 pixel groups, so bounding box values will be rounded to the
// extents of these groups, rather than the exact pixel.
Expand Down

0 comments on commit 36871c9

Please sign in to comment.