nir: Add load_output_u8_as_fp16_pan intrinsic
This is a single opcode, at least on newer Midgard chips. It's easier to have this represented in NIR rather than trying to optimize out the conversions, so let's add the intrinsic. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
This commit is contained in:

committed by
Tomeu Vizoso

parent
ee5321f239
commit
03f73c7fc6
@@ -836,10 +836,16 @@ intrinsic("load_global_ir3", [2, 1], dest_comp=0, indices=[ACCESS, ALIGN_MUL, AL
|
||||
# One notable divergence is sRGB, which is asymmetric: raw_input_pan requires
|
||||
# an sRGB->linear conversion, but linear values should be written to
|
||||
# raw_output_pan and the hardware handles linear->sRGB.
|
||||
#
|
||||
# We also have format-specific Midgard intrinsics. There are rather
|
||||
# here-be-dragons. load_output_u8_as_fp16_pan does the equivalent of
|
||||
# load_raw_out_pan on an RGBA8 UNORM framebuffer followed by u2u16 -> fp16 ->
|
||||
# division by 255.
|
||||
|
||||
# src[] = { value }
|
||||
store("raw_output_pan", 1, [])
|
||||
load("raw_output_pan", 0, [], [CAN_ELIMINATE, CAN_REORDER])
|
||||
load("output_u8_as_fp16_pan", 0, [], [CAN_ELIMINATE, CAN_REORDER])
|
||||
|
||||
# V3D-specific instrinc for tile buffer color reads.
|
||||
#
|
||||
|
Reference in New Issue
Block a user