drm/shadertoy: add shadertoy_palette.fs.asm

This commit is contained in:
Zack Buhman 2025-10-21 19:35:20 -05:00
parent f6a0fc4fab
commit 91f83bdaa8
3 changed files with 139 additions and 2 deletions

View File

@ -465,7 +465,7 @@ int indirect_buffer(float time)
// fragment code // fragment code
const uint32_t fragment_shader[] = { const uint32_t fragment_shader[] = {
#include "shadertoy_sin.fs.inc" #include "shadertoy_palette.fs.inc"
}; };
const int fragment_shader_length = (sizeof (fragment_shader)) / (sizeof (fragment_shader[0])); const int fragment_shader_length = (sizeof (fragment_shader)) / (sizeof (fragment_shader[0]));
assert(fragment_shader_length % 6 == 0); assert(fragment_shader_length % 6 == 0);
@ -474,7 +474,7 @@ int indirect_buffer(float time)
printf("fs instructions %d\n", fragment_shader_instructions); printf("fs instructions %d\n", fragment_shader_instructions);
T0V(US_PIXSIZE T0V(US_PIXSIZE
, US_PIXSIZE__PIX_SIZE(1) // pixel shader stack frame size , US_PIXSIZE__PIX_SIZE(2) // pixel shader stack frame size
); );
T0V(US_CODE_RANGE T0V(US_CODE_RANGE

View File

@ -0,0 +1,53 @@
-- CONST[0] = { time, 0, 0, 0 }
-- CONST[1] = { PI_2, I_PI_2, 0, 0 },
-- d = length(uv)
src0.rgb = temp[0] :
temp[0].r = DP3 src0.rg0 src0.rg0 ;
src0.rgb = temp[0] :
temp[0].a = RSQ |src0.r| ;
src0.a = temp[0] :
temp[0].a = RCP src0.a ;
-- i = vec3(0.25, 0.40625, 0.5625);
-- td = time + d
src0.a = float(40) , -- 0.25
src1.a = float(45) , -- 0.40625
src2.rgb = float(49) : -- 0.5625
temp[0].rgb = MAD src0.a10 src1.1a0 src2.00r ;
src0.rgb = const[0] ,
src2.a = temp[0] :
temp[1].a = MAD src0.1 src0.r src2.a ;
-- t = i + vec3(td)
src0.a = temp[1] ,
src0.rgb = temp[0] :
temp[0].rgb = MAD src0.111 src0.rgb src0.aaa ;
-- j = fract(t)
src0.rgb = temp[0] :
temp[0].rgb = FRC src0.rgb ;
-- k = cos(j * 2π)
src0.rgb = temp[0] :
COS src0.r ,
temp[0].r = SOP ;
src0.rgb = temp[0] :
COS src0.g ,
temp[0].g = SOP ;
src0.rgb = temp[0] :
COS src0.b ,
temp[0].b = SOP ;
-- l = k * vec3(0.5, 0.5, 0.5) + vec3(0.5, 0.5, 0.5)
src0.rgb = temp[0] ,
src1.rgb = float(48) : -- 0.5
temp[0].rgb = MAD src0.rgb src1.rrr src1.rrr ;
OUT TEX_SEM_WAIT
src0.a = temp[0] ,
src0.rgb = temp[0] :
out[0].a = MAX src0.1 src0.1 ,
out[0].rgb = MAX src0.rgb src0.rgb ;
,

View File

@ -0,0 +1,84 @@
0x00000800,
0x08020000,
0x08020080,
0x00840420,
0x00000000,
0x00000001,
0x00004000,
0x08020000,
0x08020080,
0x00000000,
0x0004000b,
0x00000000,
0x00004000,
0x08020080,
0x08020000,
0x00000000,
0x0000c00a,
0x00000000,
0x00003800,
0x0b120080,
0x0802b4a8,
0x008f24cc,
0x00000000,
0x00092000,
0x00004000,
0x08020100,
0x00020080,
0x00000000,
0x00018010,
0x1c000000,
0x00003800,
0x08020000,
0x08020001,
0x004406d8,
0x00000000,
0x0036c000,
0x00003800,
0x08020000,
0x08020080,
0x00000220,
0x00000000,
0x00000009,
0x00000800,
0x08020000,
0x08020080,
0x00000000,
0x0000000d,
0x0000000a,
0x00001000,
0x08020000,
0x08020080,
0x00000000,
0x0000400d,
0x0000000a,
0x00002000,
0x08020000,
0x08020080,
0x00000000,
0x0000800d,
0x0000000a,
0x00003800,
0x0802c000,
0x08020080,
0x00002220,
0x00000000,
0x00001000,
0x00078005,
0x08020000,
0x08020000,
0x00440220,
0x00c18003,
0x00000005,