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
Overlap_BL_Inside
Tests the boundary condition of xemu's 2D blit overlap detection by performing a 1x1 pixel blit exactly inside the bottom-left corner of a 3D render surface.
Overlap_BL_Outside
Tests the boundary condition of xemu's 2D blit overlap detection by performing a 1x1 pixel blit just outside the bottom-left corner of a 3D render surface.
Overlap_BR_Inside
Tests the boundary condition of xemu's 2D blit overlap detection by performing a 1x1 pixel blit exactly inside the bottom-right corner of a 3D render surface.
Overlap_BR_Outside
Tests the boundary condition of xemu's 2D blit overlap detection by performing a 1x1 pixel blit just outside the bottom-right corner of a 3D render surface.
Overlap_TL_Inside
Tests the boundary condition of xemu's 2D blit overlap detection by performing a 1x1 pixel blit exactly inside the top-left corner of a 3D render surface.
Overlap_TL_Outside
Tests the boundary condition of xemu's 2D blit overlap detection by performing a 1x1 pixel blit just outside the top-left corner of a 3D render surface.
Overlap_TR_Inside
Tests the boundary condition of xemu's 2D blit overlap detection by performing a 1x1 pixel blit exactly inside the top-right corner of a 3D render surface.
Overlap_TR_Outside
Tests the boundary condition of xemu's 2D blit overlap detection by performing a 1x1 pixel blit just outside the top-right corner of a 3D render surface.
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.