Skip to content

Commit 35c252e

Browse files
committed
HLSL fallback wip
1 parent 33b492b commit 35c252e

15 files changed

+221
-54
lines changed

scripts/print_hlsl_builtin.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
-- to execute this script and gen new files
44
local files_list = {'accel_process', 'accel_process_vk', 'bindless_upload', 'bindless_upload_vk', 'bc6_encode_block', 'bc6_header', 'bc6_trymode_g10cs',
55
'bc6_trymode_le10cs', 'bc7_encode_block', 'bc7_header', 'bc7_trymode_02cs', 'bc7_trymode_137cs',
6-
'bc7_trymode_456cs', 'hlsl_header', 'raytracing_header', 'tex2d_bindless', 'tex3d_bindless',
6+
'bc7_trymode_456cs', 'hlsl_header', 'hlsl_header_fallback', 'raytracing_header', 'tex2d_bindless', 'tex3d_bindless',
77
'compute_quad', 'determinant', 'inverse', 'indirect', 'resource_size', 'accel_header', 'copy_sign',
88
'bindless_common', 'auto_diff', "reduce"}
99
local lib = import("lib")

src/backends/common/hlsl/builtin/hlsl_builtin.hpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ extern unsigned char bc7_trymode_02cs[];
1515
extern unsigned char bc7_trymode_137cs[];
1616
extern unsigned char bc7_trymode_456cs[];
1717
extern unsigned char hlsl_header[];
18+
extern unsigned char hlsl_header_fallback[];
1819
extern unsigned char raytracing_header[];
1920
extern unsigned char tex2d_bindless[];
2021
extern unsigned char tex3d_bindless[];
@@ -50,10 +51,11 @@ static HLSLCompressedHeader get_hlsl_builtin(luisa::string_view ss) {
5051
dict.try_emplace("bc7_trymode_02cs", HLSLCompressedHeader{bc7_trymode_02cs, 1782, 7820});
5152
dict.try_emplace("bc7_trymode_137cs", HLSLCompressedHeader{bc7_trymode_137cs, 1814, 7852});
5253
dict.try_emplace("bc7_trymode_456cs", HLSLCompressedHeader{bc7_trymode_456cs, 2391, 11171});
53-
dict.try_emplace("hlsl_header", HLSLCompressedHeader{hlsl_header, 1417, 5593});
54+
dict.try_emplace("hlsl_header", HLSLCompressedHeader{hlsl_header, 1452, 5648});
55+
dict.try_emplace("hlsl_header_fallback", HLSLCompressedHeader{hlsl_header_fallback, 1568, 6256});
5456
dict.try_emplace("raytracing_header", HLSLCompressedHeader{raytracing_header, 889, 3045});
55-
dict.try_emplace("tex2d_bindless", HLSLCompressedHeader{tex2d_bindless, 737, 8999});
56-
dict.try_emplace("tex3d_bindless", HLSLCompressedHeader{tex3d_bindless, 675, 7825});
57+
dict.try_emplace("tex2d_bindless", HLSLCompressedHeader{tex2d_bindless, 738, 8883});
58+
dict.try_emplace("tex3d_bindless", HLSLCompressedHeader{tex3d_bindless, 676, 7738});
5759
dict.try_emplace("compute_quad", HLSLCompressedHeader{compute_quad, 87, 138});
5860
dict.try_emplace("determinant", HLSLCompressedHeader{determinant, 525, 2019});
5961
dict.try_emplace("inverse", HLSLCompressedHeader{inverse, 681, 2907});

src/backends/common/hlsl/builtin/hlsl_header

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#define _INF_f (1.#INF)
22
SamplerState samplers[16]:register(s0,space1);
3+
#define _GETSMP(idx) samplers[NonUniformResourceIndex(idx)]
34
template<typename T>
45
T _acosh(T v){return log(v+sqrt(v*v-1.0));}
56
template<typename T>
@@ -69,12 +70,12 @@ row_major float4x4 m;
6970
#define _bytebfwriteMat(bf,type,idx,value) {type _tempm;_tempm.m=value;bf.template Store<type>(idx,_tempm);}
7071
#define _Readtx(tex,uv) tex[uv]
7172
#define _Writetx(tex,uv,value) tex[uv]=value
72-
#define _Smptx(tex,uv,filter,address) (tex.SampleLevel(samplers[(address)*4+(filter)],(uv),0))
73-
#define _SmptxPixel(tex,uv,filter,address) (tex.Sample(samplers[(address)*4+(filter)],(uv)))
74-
#define _SmptxLevel(tex,uv,level,filter,address) (tex.SampleLevel(samplers[(address)*4+(filter)],uv,level))
75-
#define _SmptxGrad(tex,uv,dx,dy,filter,address) (tex.SampleGrad(samplers[(address)*4+(filter)],uv,dx,dy))
76-
#define _SmptxGrad2DLevel(tex,uv,dx,dy,minMip,filter,address) (tex.SampleGrad(samplers[(address)*4+(filter)],uv,dx,dy,int2(0),minMip))
77-
#define _SmptxGrad3DLevel(tex,uv,dx,dy,minMip,filter,address) (tex.SampleGrad(samplers[(address)*4+(filter)],uv,dx,dy,int3(0),minMip))
73+
#define _Smptx(tex,uv,filter,address) (tex.SampleLevel(_GETSMP((address)*4+(filter)),(uv),0))
74+
#define _SmptxPixel(tex,uv,filter,address) (tex.Sample(_GETSMP((address)*4+(filter)),(uv)))
75+
#define _SmptxLevel(tex,uv,level,filter,address) (tex.SampleLevel(_GETSMP((address)*4+(filter)),uv,level))
76+
#define _SmptxGrad(tex,uv,dx,dy,filter,address) (tex.SampleGrad(_GETSMP((address)*4+(filter)),uv,dx,dy))
77+
#define _SmptxGrad2DLevel(tex,uv,dx,dy,minMip,filter,address) (tex.SampleGrad(_GETSMP((address)*4+(filter)),uv,dx,dy,int2(0),minMip))
78+
#define _SmptxGrad3DLevel(tex,uv,dx,dy,minMip,filter,address) (tex.SampleGrad(_GETSMP((address)*4+(filter)),uv,dx,dy,int3(0),minMip))
7879
template<typename T>
7980
T _fract(T x){return x-floor(x);}
8081
struct _Hit0{uint v0;uint v1;float2 v2;uint v3;float v4;};
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
namespace lc_hlsl{
2-
unsigned char hlsl_header[1417]={120,218,189,88,93,111,219,54,20,125,15,144,255,64,32,47,82,162,122,250,90,48,212,107,95,86,180,11,208,12,197,18,172,15,129,97,80,50,157,106,179,62,38,209,138,18,99,255,125,247,146,20,37,81,178,156,97,195,96,216,186,20,207,61,231,240,82,150,72,93,108,216,54,201,24,89,223,252,242,113,189,37,150,183,184,128,200,62,63,187,163,105,177,99,229,29,167,156,145,74,54,170,7,239,122,245,182,100,143,73,197,89,105,85,174,83,21,52,102,158,189,60,63,227,12,32,128,253,145,63,23,44,163,41,35,247,239,207,207,238,201,154,198,121,245,205,186,39,181,125,40,25,223,151,25,217,229,143,86,125,85,253,89,114,171,190,172,223,120,11,215,182,151,127,205,81,84,73,54,71,113,245,10,10,78,13,10,119,241,253,37,210,192,144,221,171,218,254,14,143,111,234,19,52,172,41,60,119,64,83,228,79,150,231,58,53,228,29,173,194,118,151,83,78,214,59,150,61,242,111,107,112,13,12,141,102,216,228,220,106,156,102,94,120,155,82,72,162,206,61,137,224,27,235,100,122,25,93,197,152,41,52,252,198,7,168,138,44,17,4,77,216,115,171,251,234,7,119,181,104,158,157,250,193,195,163,61,71,17,254,67,10,148,92,171,40,176,52,171,65,1,40,65,225,184,240,65,14,17,168,207,44,217,132,159,150,12,124,188,40,58,29,250,42,236,56,67,205,9,209,81,131,161,105,16,7,235,142,63,114,230,143,17,79,212,63,124,133,217,113,33,38,38,134,164,174,235,180,145,215,70,158,62,231,121,227,89,195,20,4,35,12,1,115,133,158,230,119,253,41,37,29,233,94,95,247,250,186,215,247,199,243,166,29,1,177,219,250,114,144,8,34,31,191,208,242,253,19,19,120,202,171,27,188,206,181,23,204,251,215,145,198,5,26,23,104,92,160,113,65,48,158,252,254,136,209,88,127,204,104,160,63,106,20,66,9,36,71,90,36,156,187,38,124,18,43,63,16,77,204,63,244,198,243,179,30,104,6,136,60,29,77,204,156,28,16,82,186,182,211,54,188,126,3,103,109,118,218,66,45,22,106,49,136,124,29,77,148,79,12,193,1,76,108,150,130,151,52,171,138,188,98,221,159,58,213,249,93,103,106,140,223,72,195,115,144,166,77,7,36,77,223,13,178,207,207,20,103,87,186,52,197,91,5,252,122,226,215,95,33,106,48,112,67,37,148,42,115,230,68,218,237,126,215,37,80,71,135,145,206,77,1,17,57,212,24,148,206,11,186,188,96,34,79,151,149,234,123,142,81,85,205,132,45,197,132,225,140,3,211,119,43,67,232,32,135,58,81,207,181,225,57,106,47,189,113,14,222,35,59,143,134,195,168,189,252,103,180,188,235,245,192,163,104,119,154,178,251,68,126,96,228,7,195,252,147,190,17,228,27,28,61,255,178,123,218,67,197,203,125,12,43,138,167,40,207,119,1,57,200,67,189,36,24,16,42,30,72,26,163,170,120,80,71,64,201,91,211,20,76,26,63,244,226,22,142,45,51,101,159,100,136,150,7,0,98,48,133,81,172,93,168,176,199,56,175,67,141,151,161,194,99,195,196,75,11,173,131,9,3,157,126,95,254,136,122,39,222,215,158,150,254,90,210,162,96,155,143,237,117,119,40,243,167,117,74,127,207,75,210,221,125,142,102,192,61,131,192,45,198,200,17,183,30,188,113,28,201,194,107,116,156,21,246,178,46,218,5,125,180,45,25,221,88,209,214,73,54,141,77,162,237,3,28,87,35,192,111,44,14,76,16,94,166,35,224,45,229,35,92,58,64,61,149,9,103,10,227,212,116,183,103,26,249,78,52,199,232,158,186,204,112,112,225,219,165,97,235,226,2,150,75,162,207,181,199,12,157,45,67,114,145,142,69,159,57,235,202,130,220,237,112,22,237,194,155,124,206,233,70,172,190,223,91,216,55,153,221,186,62,193,0,198,37,137,89,79,77,164,204,191,202,201,176,216,130,98,186,224,139,59,158,151,204,234,206,77,231,153,131,232,17,104,11,130,105,48,22,199,156,145,35,236,198,200,90,242,3,158,128,71,33,8,164,75,121,104,231,105,57,45,44,85,37,84,220,251,180,218,175,80,64,222,88,156,53,206,190,182,9,28,31,246,117,255,2,255,138,70,52,162,181,160,112,163,139,227,46,45,58,236,54,217,193,14,215,161,155,77,201,170,202,38,120,126,33,183,196,159,89,205,118,150,222,17,91,45,230,50,188,178,100,154,189,114,44,112,100,20,71,240,127,73,26,72,62,45,242,26,254,49,187,180,166,216,119,216,248,215,3,105,137,198,98,159,74,248,27,41,45,152,161,205,243,156,150,0,159,150,18,60,211,82,254,135,193,232,164,98,154,100,183,73,241,95,9,59,112,159,247,45,88,189,74,218,105,31,193,255,227,35,24,250,56,254,94,160,164,49,31,188,78,104,222,192,51,33,47,173,102,176,82,248,57,225,174,120,160,146,218,93,202,163,183,84,235,164,218,87,103,2,121,134,212,225,224,177,5,185,222,76,174,202,9,100,215,154,186,102,178,63,74,238,3,110,89,245,237,38,171,56,209,11,110,82,184,203,46,246,122,177,15,177,224,192,4,154,197,236,230,195,91,63,52,79,222,210,234,143,183,63,152,103,127,202,51,94,38,209,158,39,121,118,159,131,173,79,101,190,47,110,178,13,107,122,28,31,119,244,177,210,201,176,254,138,99,182,187,19,86,191,240,82,61,99,187,165,113,190,135,169,91,23,101,190,1,64,187,1,107,151,200,189,5,178,222,126,209,203,104,209,56,248,107,190,48,153,160,10,244,186,221,164,234,237,190,36,99,183,231,18,220,70,251,101,188,13,155,144,235,182,23,166,156,216,30,116,206,29,201,137,191,79,198,94,33,165,124,29,231,105,177,78,79,110,26,186,154,192,206,233,50,194,237,19,133,221,19,68,222,202,168,205,152,245,232,166,102,84,30,245,162,69,8,168,23,65,186,52,234,205,139,144,28,245,249,109,159,126,129,100,148,112,236,234,232,22,173,171,226,120,172,14,74,9,25,136,2,140,130,213,240,73,247,194,202,220,146,11,35,75,30,7,43,161,60,99,195,94,15,122,255,6,34,250,66,194};
2+
unsigned char hlsl_header[1452]={120,218,189,88,93,111,219,54,20,125,15,144,255,32,32,47,82,162,120,250,90,48,212,107,95,214,181,11,208,20,69,147,173,15,129,97,80,50,157,106,179,68,141,162,21,165,193,254,251,46,63,68,74,148,44,103,216,48,24,182,46,197,115,207,57,188,148,37,82,103,27,188,205,75,236,172,175,63,190,91,111,29,55,92,156,65,228,157,158,220,162,162,218,97,122,203,16,195,78,45,27,245,125,120,181,122,69,241,67,94,51,76,221,58,240,235,10,101,56,244,150,167,39,103,29,209,251,159,239,110,111,62,185,249,166,245,76,222,71,82,254,90,230,91,66,139,207,184,38,123,154,225,235,114,131,91,129,90,157,158,48,12,56,16,250,145,61,85,184,68,5,118,238,222,156,158,220,57,107,148,145,250,171,123,231,52,222,51,197,108,79,75,103,71,30,220,230,162,254,147,50,183,57,111,46,195,69,224,121,203,191,230,40,234,188,156,163,184,120,1,5,67,22,69,176,248,254,156,211,64,189,130,139,198,251,142,31,47,155,35,52,184,173,194,96,64,83,145,71,55,12,252,6,242,150,135,18,183,59,130,152,179,222,225,242,129,125,93,131,107,96,104,53,195,134,48,183,245,219,121,225,109,129,32,9,249,119,78,10,223,76,39,163,243,244,34,227,153,66,35,106,35,128,170,200,21,65,220,38,61,183,186,175,185,15,86,139,246,201,111,238,67,126,244,230,40,146,127,72,193,37,215,42,138,93,205,106,81,0,74,80,248,1,124,56,135,8,212,103,150,108,194,79,71,6,62,190,41,58,29,70,42,52,156,137,230,132,232,160,193,196,54,200,7,27,140,63,114,230,15,17,79,212,63,121,129,217,113,33,38,38,198,41,130,192,239,162,176,139,66,125,46,12,199,179,198,83,56,152,195,56,96,174,208,211,252,65,52,165,164,35,221,27,233,222,72,247,70,209,120,222,180,35,32,14,58,95,62,39,130,40,226,95,104,69,209,145,9,60,230,53,136,95,230,58,140,231,253,235,72,227,98,141,139,53,46,214,184,56,30,79,126,127,196,220,88,127,204,220,64,127,212,92,136,75,112,114,78,203,9,231,174,137,200,201,148,31,136,38,230,31,122,179,249,89,143,53,3,68,161,142,38,102,78,14,136,83,6,158,223,53,194,126,131,207,218,236,180,37,90,44,209,98,16,69,58,154,40,159,24,130,15,152,204,46,5,163,168,172,43,82,99,243,167,46,116,190,233,44,172,241,91,105,252,28,164,105,211,177,83,20,175,7,217,167,39,138,211,148,174,40,248,173,2,126,67,241,27,173,56,106,48,112,75,37,145,42,115,230,68,218,205,126,103,18,144,175,195,84,231,22,128,72,125,100,13,74,231,197,38,47,158,200,211,101,69,250,158,99,85,85,51,241,150,98,226,225,140,3,219,119,39,227,160,65,14,242,211,158,107,203,115,218,93,122,227,28,126,143,52,30,45,135,105,119,249,207,104,133,87,235,129,71,209,54,154,178,251,72,126,108,229,199,195,252,163,190,57,40,178,56,122,254,101,247,180,135,154,209,125,6,43,138,199,148,144,93,236,60,203,67,179,116,120,224,32,241,64,210,24,85,197,103,117,4,148,188,53,77,193,164,241,231,94,220,193,121,203,78,217,231,37,71,203,3,0,121,48,133,81,172,38,84,216,67,156,87,137,198,203,80,225,121,195,198,75,11,157,131,9,3,70,191,47,127,64,221,136,247,181,167,165,191,80,84,85,120,243,174,187,238,158,41,121,92,23,232,119,66,29,115,247,57,152,1,247,12,7,110,49,86,142,184,245,240,27,199,129,44,126,141,142,179,146,94,150,94,196,167,91,138,209,198,77,183,190,88,199,167,219,123,56,174,70,128,223,112,22,219,32,126,153,142,128,55,136,141,112,197,0,245,72,115,134,21,198,111,208,110,143,53,242,181,104,142,209,61,117,153,225,243,133,175,73,227,173,179,51,88,46,137,190,192,27,51,24,91,150,228,162,24,139,62,49,108,202,194,185,187,225,44,186,133,183,243,129,160,141,88,125,191,17,59,155,201,236,206,245,17,6,48,46,73,236,122,106,34,101,254,69,78,134,197,22,20,211,5,95,220,50,66,177,107,206,77,231,217,131,232,17,104,11,130,105,48,22,223,158,145,3,236,214,200,58,242,103,126,2,30,133,32,80,44,229,161,155,167,229,180,176,84,149,80,113,239,211,106,159,161,128,172,117,25,110,253,125,227,57,112,188,223,55,253,11,252,11,55,162,17,157,5,133,27,93,28,183,69,101,176,219,124,7,219,99,31,109,54,20,215,181,231,240,243,11,185,159,254,128,27,188,115,187,61,178,219,65,206,147,11,87,102,121,158,239,130,33,171,54,130,254,83,222,66,238,113,141,23,208,143,201,165,49,69,190,227,141,127,59,140,142,103,172,245,158,194,127,72,73,193,244,108,158,230,164,4,248,168,146,160,153,86,138,222,14,198,38,5,139,188,188,201,171,255,72,215,135,91,124,228,194,194,85,178,78,219,136,255,23,27,241,208,198,225,55,2,20,101,108,240,34,161,189,132,167,1,161,110,59,88,35,252,146,179,64,60,74,157,38,88,202,99,184,84,43,164,38,82,103,98,121,198,105,146,193,3,11,114,195,153,92,149,19,203,174,53,10,236,228,104,148,220,7,220,224,250,235,117,89,51,71,47,181,157,42,88,154,56,236,197,17,196,130,131,39,160,50,195,215,111,95,69,137,125,242,6,213,127,188,250,193,62,251,19,41,25,205,211,61,203,73,121,71,192,214,123,74,246,149,120,123,213,227,120,183,67,15,181,78,134,149,87,150,225,221,173,176,250,137,81,245,116,53,139,98,178,135,169,91,87,148,108,0,208,109,189,186,197,113,111,105,172,55,94,232,60,93,180,62,255,181,95,149,76,80,197,122,197,110,83,245,246,93,146,209,236,182,4,183,213,254,54,222,128,77,200,153,141,133,45,39,54,6,198,185,47,57,249,239,163,181,75,40,16,91,103,164,168,214,197,209,237,130,169,9,236,153,206,83,190,113,66,176,111,130,40,92,89,181,25,179,30,220,206,140,202,163,94,177,8,1,245,10,72,151,70,189,115,17,146,163,190,168,235,211,175,142,172,18,142,93,29,220,156,153,42,142,199,234,115,41,33,3,81,204,163,120,53,124,198,125,195,148,184,114,73,228,202,227,96,13,68,74,60,236,13,161,247,111,186,221,78,178};
33
}

0 commit comments

Comments
 (0)