Skip to content

Fix Mac OS 8.6 ATI Rage drawing artifacts - #202

Merged
dingusdev merged 3 commits into
dingusdev:masterfrom
mihaip:upstream-atirage-fills
Aug 7, 2026
Merged

dingusdev merged 3 commits into
dingusdev:masterfrom
mihaip:upstream-atirage-fills

Conversation

@mihaip

@mihaip mihaip commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Fix rendering glitches when enabling all the ATI extensions and booting with the Beige G3 ROM.

See commit messages for more details.

mihaip added 3 commits August 7, 2026 07:48
Mac OS 8.6 programs GUI_TRAJ_CNTL to set draw-engine direction and
issues fills through several destination register initiators. Model the
composite register, destination initiators, signed inclusive scissors,
tiling side effects, and Always_1 source selection.

Accept source mix 7 independently of the unused background mix for
solid fills, and consume 8-bit HOST_DATA writes in trajectory order.
This lets the desktop paint and prevents host uploads from being
reversed or clipped.

References:
- ATI 3D Rage LT Pro Register Reference Guide, pp. 5-8--5-12,
  5-33, 5-39--5-42, 5-47--5-51, 5-58, and 5-64--5-65.
- ATI Rage Pro and Derivatives Programmer's Guide, pp. 6-5,
  6-11--6-19, and 6-27--6-29.
Mac OS 8.6 uses general and rotated source trajectories when drawing
Finder icons and the Control Strip. Preserve both source size/start
composites and repeat their first and second rectangles according to
SRC_CNTL.

Use the documented signed source coordinates and inclusive scissors
while advancing the source for clipped destination pixels. Unbounded
blits continue to use the existing linear trajectory.

References:
- ATI 3D Rage LT Pro Register Reference Guide, pp. 5-21--5-31 and
  5-39--5-42.
- ATI Rage Pro and Derivatives Programmer's Guide, pp. 6-11--6-19,
  6-31--6-33, and 6-42.
The Mac OS 8.6 driver enables color-register writes without enabling
block writes to update SGRAM state. Treat that command as a
register-only operation instead of sending it through the VRAM blitter,
while retaining the documented destination tiling side effects.

This prevents the command from producing stray pixels near the menu
bar and Control Strip.

References:
- ATI 3D Rage LT Pro Register Reference Guide, pp. 5-21--5-24.
- ATI Rage Pro and Derivatives Programmer's Guide, pp. 6-11--6-19.
@dingusdev
dingusdev merged commit e2a28ec into dingusdev:master Aug 7, 2026
7 checks passed
@mihaip
mihaip deleted the upstream-atirage-fills branch August 8, 2026 02:57
@mihaip
mihaip restored the upstream-atirage-fills branch August 8, 2026 07:17
@mihaip
mihaip deleted the upstream-atirage-fills branch August 8, 2026 07:18
mihaip added a commit to mihaip/infinite-mac that referenced this pull request Aug 8, 2026
Includes dingusdev/dingusppc#202 which implements more ATI Rage features.

For #219
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants