asahi,agx: Use new tilebuffer infrastructure
Flag day change to replace the previous hardcoded background/end-of-tile shaders and the API-style load/store_output in fragment shaders with the generated shaders and lowered *_agx intrinsics. This gets us working non-UNORM8 render targets and working MRT. It's also a step in the direction of working MSAA but that needs a lot more work, since the multisampling programming model on AGX is quite different from any of the APIs (including Metal). Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19871>
This commit is contained in:

committed by
Marge Bot

parent
c5c0ea39f6
commit
74e92274af
@@ -94,6 +94,7 @@ SHIFT = immediate("shift")
|
||||
MASK = immediate("mask")
|
||||
BFI_MASK = immediate("bfi_mask")
|
||||
LOD_MODE = immediate("lod_mode", "enum agx_lod_mode")
|
||||
PIXEL_OFFSET = immediate("pixel_offset")
|
||||
|
||||
DIM = enum("dim", {
|
||||
0: '1d',
|
||||
@@ -250,11 +251,12 @@ op("get_sr", (0x72, 0x7F | L, 4, _), dests = 1, imms = [SR])
|
||||
|
||||
op("sample_mask", (0x7fc1, 0xffff, 6, _), dests = 0, srcs = 1, can_eliminate = False)
|
||||
|
||||
# Essentially same encoding
|
||||
op("ld_tile", (0x49, 0x7F, 8, _), dests = 1, srcs = 0, imms = [FORMAT, MASK], can_reorder = False)
|
||||
# Essentially same encoding. Last source is the sample mask
|
||||
op("ld_tile", (0x49, 0x7F, 8, _), dests = 1, srcs = 1,
|
||||
imms = [FORMAT, MASK, PIXEL_OFFSET], can_reorder = False)
|
||||
|
||||
op("st_tile", (0x09, 0x7F, 8, _), dests = 0, srcs = 1,
|
||||
can_eliminate = False, imms = [FORMAT, MASK])
|
||||
op("st_tile", (0x09, 0x7F, 8, _), dests = 0, srcs = 2,
|
||||
can_eliminate = False, imms = [FORMAT, MASK, PIXEL_OFFSET])
|
||||
|
||||
for (name, exact) in [("any", 0xC000), ("none", 0xC200)]:
|
||||
op("jmp_exec_" + name, (exact, (1 << 16) - 1, 6, _), dests = 0, srcs = 0,
|
||||
|
Reference in New Issue
Block a user