Image_blit
BlitBeyondWidth
Demonstrates the interaction between 0x9F image blit operations and assigned GPU tiles. A blit operation is configured with a target smaller than the source. The target address is set within an active GPU tile such that the blit would extend beyond the end of the tile and a guard value is tested to prove that the blit is clipped to stay within the tile. A similar blit is performed outside of the tile, demonstrating that unprotected blits may overdraw the target region.
BlitRenderBlit
Blits an image into a render surface, then performs a 3d render on top of the surface, then another blit on top of the composited two. Finally does a srccopy to blit the finished composition to the framebuffer. Demonstrates apparent incorrect ordering in various versions of xemu.
DirtyOverlappedDestSurf
Performs a 3d render into the backbuffer, then a 2D srccopy that completely overwrites it. Finally performs another 3d render, demonstrating incorrect behavior in various versions of xemu.
ImgBlt_BLENDAND_XRGB_B00000000
Demonstrates expected behavior of the contextual beta (class 0x12) during image blits.
ImgBlt_BLENDAND_XRGB_B007FFFFF
ImgBlt_BLENDAND_XRGB_B00800000
ImgBlt_BLENDAND_XRGB_B00D00000
ImgBlt_BLENDAND_XRGB_B03300000
ImgBlt_BLENDAND_XRGB_B44400000
ImgBlt_BLENDAND_XRGB_B444FFFFF
ImgBlt_BLENDAND_XRGB_B66800000
ImgBlt_BLENDAND_XRGB_B7F800000
ImgBlt_BLENDAND_XRGB_B7FFFFFFF
ImgBlt_BLENDAND_XRGB_B80000000
ImgBlt_BLENDAND_XRGB_B8FFFFFFF
ImgBlt_BLENDAND_ZRGB_B007FFFFF
ImgBlt_BLENDAND_ZRGB_B00800000
ImgBlt_BLENDAND_ZRGB_B00D00000
ImgBlt_BLENDAND_ZRGB_B03300000
ImgBlt_BLENDAND_ZRGB_B44400000
ImgBlt_BLENDAND_ZRGB_B444FFFFF
ImgBlt_BLENDAND_ZRGB_B66800000
ImgBlt_BLENDAND_ZRGB_B7F800000
ImgBlt_Clip_0_0_640_480
Demonstrates expected behavior of the contextual clip rectangle (class 0x19) during image blits.
ImgBlt_Clip_300_200_16_24
ImgBlt_Clip_320_240_0_0
ImgBlt_Clip_320_240_0_10
ImgBlt_Clip_320_240_1_1
ImgBlt_Clip_320_240_640_480
ImgBlt_Clip_320_240_64_40
ImgBlt_SRCCOPY_ARGB_B00000000
ImgBlt_SRCCOPY_XRGB_B00000000
ImgBlt_SRCCOPY_ZRGB_B00000000
OverlapFIFO
Demonstrates that image blits overlapping the pushbuffer are performed without issue on HW. A blit copying the test image over the current pushbuffer write address is queued, followed by a blit copying the data from there to the screen. This is flushed to the HW, along with a wait until the pushbuffer is fully consumed. Failure to wait demonstrates a race between the blits and subsequent instructions, generally leading to some corruption near the top of the image.