Skip to content

Commit b2c0e42

Browse files
committed
feedback update shaders bindings
1 parent 31cbc98 commit b2c0e42

14 files changed

Lines changed: 547 additions & 548 deletions

assets/shaders/basic-lighting.glsl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ void main() {
4040
#pragma sokol @end
4141

4242
#pragma sokol @fs fs
43-
layout(binding=1) uniform texture2D tex;
44-
layout(binding=2) uniform texture2D tex_emissive;
45-
layout(binding=1) uniform sampler smp;
43+
layout(binding=0) uniform texture2D tex;
44+
layout(binding=1) uniform texture2D tex_emissive;
45+
layout(binding=0) uniform sampler smp;
4646

4747
layout(binding=1) uniform fs_params {
4848
vec4 u_cameraPos;

assets/shaders/default-mesh.glsl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ void main() {
3232
#pragma sokol @end
3333

3434
#pragma sokol @fs fs
35-
layout(binding=1) uniform texture2D tex;
36-
layout(binding=1) uniform sampler smp;
35+
layout(binding=0) uniform texture2D tex;
36+
layout(binding=0) uniform sampler smp;
3737
layout(binding=1) uniform fs_params {
3838
vec4 u_color_override;
3939
float u_alpha_cutoff;

assets/shaders/default.glsl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ void main() {
3030
#pragma sokol @end
3131

3232
#pragma sokol @fs fs
33-
layout(binding=1) uniform texture2D tex;
34-
layout(binding=1) uniform sampler smp;
33+
layout(binding=0) uniform texture2D tex;
34+
layout(binding=0) uniform sampler smp;
3535
layout(binding=1) uniform fs_params {
3636
vec4 u_color_override;
3737
float u_alpha_cutoff;

assets/shaders/emissive.glsl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ void main() {
3838
#pragma sokol @end
3939

4040
#pragma sokol @fs fs
41-
layout(binding=1) uniform texture2D tex;
42-
layout(binding=2) uniform texture2D tex_emissive;
43-
layout(binding=1) uniform sampler smp;
41+
layout(binding=0) uniform texture2D tex;
42+
layout(binding=1) uniform texture2D tex_emissive;
43+
layout(binding=0) uniform sampler smp;
4444
layout(binding=1) uniform fs_params {
4545
vec4 u_color_override;
4646
float u_alpha_cutoff;

assets/shaders/skinned-basic-lighting.glsl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ void main() {
5252
#pragma sokol @end
5353

5454
#pragma sokol @fs fs
55-
layout(binding=1) uniform texture2D tex;
56-
layout(binding=2) uniform texture2D tex_emissive;
57-
layout(binding=1) uniform sampler smp;
55+
layout(binding=0) uniform texture2D tex;
56+
layout(binding=1) uniform texture2D tex_emissive;
57+
layout(binding=0) uniform sampler smp;
5858
layout(binding=1) uniform fs_params {
5959
vec4 u_cameraPos;
6060
vec4 u_color_override;

assets/shaders/skinned.glsl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ void main() {
5959
#pragma sokol @end
6060

6161
#pragma sokol @fs fs
62-
layout(binding=1) uniform texture2D tex;
63-
layout(binding=2) uniform texture2D tex_emissive;
64-
layout(binding=1) uniform sampler smp;
62+
layout(binding=0) uniform texture2D tex;
63+
layout(binding=1) uniform texture2D tex_emissive;
64+
layout(binding=0) uniform sampler smp;
6565
layout(binding=1) uniform fs_params {
6666
vec4 u_color_override;
6767
float u_alpha_cutoff;

build.zig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ pub fn build(b: *std.Build) !void {
9595
dep_zmesh.artifact("zmesh"),
9696
dep_zstbi.artifact("zstbi"),
9797
dep_zaudio.artifact("miniaudio"),
98-
dep_zlua.artifact("lua"),
9998
dep_cimgui.artifact("cimgui_clib"),
10099
dep_stb_truetype.artifact("stb_truetype"),
101100
};

src/framework/graphics/shaders/basic-lighting.glsl.zig

Lines changed: 94 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ const m = @import("../../math.zig");
3232
// Image type: ._2D
3333
// Sample type: .FLOAT
3434
// Multisampled: false
35-
// Bind slot: IMG_tex => 1
35+
// Bind slot: IMG_tex => 0
3636
// Image 'tex_emissive':
3737
// Image type: ._2D
3838
// Sample type: .FLOAT
3939
// Multisampled: false
40-
// Bind slot: IMG_tex_emissive => 2
40+
// Bind slot: IMG_tex_emissive => 1
4141
// Sampler 'smp':
4242
// Type: .FILTERING
43-
// Bind slot: SMP_smp => 1
43+
// Bind slot: SMP_smp => 0
4444
//
4545
pub const ATTR_emissive_pos = 0;
4646
pub const ATTR_emissive_color0 = 1;
@@ -49,9 +49,9 @@ pub const ATTR_emissive_normals = 3;
4949
pub const ATTR_emissive_tangents = 4;
5050
pub const UB_vs_params = 0;
5151
pub const UB_fs_params = 1;
52-
pub const IMG_tex = 1;
53-
pub const IMG_tex_emissive = 2;
54-
pub const SMP_smp = 1;
52+
pub const IMG_tex = 0;
53+
pub const IMG_tex_emissive = 1;
54+
pub const SMP_smp = 0;
5555
pub const VsParams = extern struct {
5656
u_projViewMatrix: m.Mat4 align(16),
5757
u_modelMatrix: m.Mat4 align(1),
@@ -3610,23 +3610,23 @@ pub fn emissiveShaderDesc(backend: sg.Backend) sg.ShaderDesc {
36103610
desc.uniform_blocks[1].glsl_uniforms[0].type = .FLOAT4;
36113611
desc.uniform_blocks[1].glsl_uniforms[0].array_count = 41;
36123612
desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "fs_params";
3613+
desc.images[0].stage = .FRAGMENT;
3614+
desc.images[0].multisampled = false;
3615+
desc.images[0].image_type = ._2D;
3616+
desc.images[0].sample_type = .FLOAT;
36133617
desc.images[1].stage = .FRAGMENT;
36143618
desc.images[1].multisampled = false;
36153619
desc.images[1].image_type = ._2D;
36163620
desc.images[1].sample_type = .FLOAT;
3617-
desc.images[2].stage = .FRAGMENT;
3618-
desc.images[2].multisampled = false;
3619-
desc.images[2].image_type = ._2D;
3620-
desc.images[2].sample_type = .FLOAT;
3621-
desc.samplers[1].stage = .FRAGMENT;
3622-
desc.samplers[1].sampler_type = .FILTERING;
3621+
desc.samplers[0].stage = .FRAGMENT;
3622+
desc.samplers[0].sampler_type = .FILTERING;
36233623
desc.image_sampler_pairs[0].stage = .FRAGMENT;
3624-
desc.image_sampler_pairs[0].image_slot = 1;
3625-
desc.image_sampler_pairs[0].sampler_slot = 1;
3624+
desc.image_sampler_pairs[0].image_slot = 0;
3625+
desc.image_sampler_pairs[0].sampler_slot = 0;
36263626
desc.image_sampler_pairs[0].glsl_name = "tex_smp";
36273627
desc.image_sampler_pairs[1].stage = .FRAGMENT;
3628-
desc.image_sampler_pairs[1].image_slot = 2;
3629-
desc.image_sampler_pairs[1].sampler_slot = 1;
3628+
desc.image_sampler_pairs[1].image_slot = 1;
3629+
desc.image_sampler_pairs[1].sampler_slot = 0;
36303630
desc.image_sampler_pairs[1].glsl_name = "tex_emissive_smp";
36313631
},
36323632
.GLES3 => {
@@ -3656,23 +3656,23 @@ pub fn emissiveShaderDesc(backend: sg.Backend) sg.ShaderDesc {
36563656
desc.uniform_blocks[1].glsl_uniforms[0].type = .FLOAT4;
36573657
desc.uniform_blocks[1].glsl_uniforms[0].array_count = 41;
36583658
desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "fs_params";
3659+
desc.images[0].stage = .FRAGMENT;
3660+
desc.images[0].multisampled = false;
3661+
desc.images[0].image_type = ._2D;
3662+
desc.images[0].sample_type = .FLOAT;
36593663
desc.images[1].stage = .FRAGMENT;
36603664
desc.images[1].multisampled = false;
36613665
desc.images[1].image_type = ._2D;
36623666
desc.images[1].sample_type = .FLOAT;
3663-
desc.images[2].stage = .FRAGMENT;
3664-
desc.images[2].multisampled = false;
3665-
desc.images[2].image_type = ._2D;
3666-
desc.images[2].sample_type = .FLOAT;
3667-
desc.samplers[1].stage = .FRAGMENT;
3668-
desc.samplers[1].sampler_type = .FILTERING;
3667+
desc.samplers[0].stage = .FRAGMENT;
3668+
desc.samplers[0].sampler_type = .FILTERING;
36693669
desc.image_sampler_pairs[0].stage = .FRAGMENT;
3670-
desc.image_sampler_pairs[0].image_slot = 1;
3671-
desc.image_sampler_pairs[0].sampler_slot = 1;
3670+
desc.image_sampler_pairs[0].image_slot = 0;
3671+
desc.image_sampler_pairs[0].sampler_slot = 0;
36723672
desc.image_sampler_pairs[0].glsl_name = "tex_smp";
36733673
desc.image_sampler_pairs[1].stage = .FRAGMENT;
3674-
desc.image_sampler_pairs[1].image_slot = 2;
3675-
desc.image_sampler_pairs[1].sampler_slot = 1;
3674+
desc.image_sampler_pairs[1].image_slot = 1;
3675+
desc.image_sampler_pairs[1].sampler_slot = 0;
36763676
desc.image_sampler_pairs[1].glsl_name = "tex_emissive_smp";
36773677
},
36783678
.D3D11 => {
@@ -3705,25 +3705,25 @@ pub fn emissiveShaderDesc(backend: sg.Backend) sg.ShaderDesc {
37053705
desc.uniform_blocks[1].layout = .STD140;
37063706
desc.uniform_blocks[1].size = 656;
37073707
desc.uniform_blocks[1].hlsl_register_b_n = 0;
3708+
desc.images[0].stage = .FRAGMENT;
3709+
desc.images[0].multisampled = false;
3710+
desc.images[0].image_type = ._2D;
3711+
desc.images[0].sample_type = .FLOAT;
3712+
desc.images[0].hlsl_register_t_n = 0;
37083713
desc.images[1].stage = .FRAGMENT;
37093714
desc.images[1].multisampled = false;
37103715
desc.images[1].image_type = ._2D;
37113716
desc.images[1].sample_type = .FLOAT;
3712-
desc.images[1].hlsl_register_t_n = 0;
3713-
desc.images[2].stage = .FRAGMENT;
3714-
desc.images[2].multisampled = false;
3715-
desc.images[2].image_type = ._2D;
3716-
desc.images[2].sample_type = .FLOAT;
3717-
desc.images[2].hlsl_register_t_n = 1;
3718-
desc.samplers[1].stage = .FRAGMENT;
3719-
desc.samplers[1].sampler_type = .FILTERING;
3720-
desc.samplers[1].hlsl_register_s_n = 0;
3717+
desc.images[1].hlsl_register_t_n = 1;
3718+
desc.samplers[0].stage = .FRAGMENT;
3719+
desc.samplers[0].sampler_type = .FILTERING;
3720+
desc.samplers[0].hlsl_register_s_n = 0;
37213721
desc.image_sampler_pairs[0].stage = .FRAGMENT;
3722-
desc.image_sampler_pairs[0].image_slot = 1;
3723-
desc.image_sampler_pairs[0].sampler_slot = 1;
3722+
desc.image_sampler_pairs[0].image_slot = 0;
3723+
desc.image_sampler_pairs[0].sampler_slot = 0;
37243724
desc.image_sampler_pairs[1].stage = .FRAGMENT;
3725-
desc.image_sampler_pairs[1].image_slot = 2;
3726-
desc.image_sampler_pairs[1].sampler_slot = 1;
3725+
desc.image_sampler_pairs[1].image_slot = 1;
3726+
desc.image_sampler_pairs[1].sampler_slot = 0;
37273727
},
37283728
.METAL_MACOS => {
37293729
desc.vertex_func.source = &vs_source_metal_macos;
@@ -3743,25 +3743,25 @@ pub fn emissiveShaderDesc(backend: sg.Backend) sg.ShaderDesc {
37433743
desc.uniform_blocks[1].layout = .STD140;
37443744
desc.uniform_blocks[1].size = 656;
37453745
desc.uniform_blocks[1].msl_buffer_n = 0;
3746+
desc.images[0].stage = .FRAGMENT;
3747+
desc.images[0].multisampled = false;
3748+
desc.images[0].image_type = ._2D;
3749+
desc.images[0].sample_type = .FLOAT;
3750+
desc.images[0].msl_texture_n = 0;
37463751
desc.images[1].stage = .FRAGMENT;
37473752
desc.images[1].multisampled = false;
37483753
desc.images[1].image_type = ._2D;
37493754
desc.images[1].sample_type = .FLOAT;
3750-
desc.images[1].msl_texture_n = 0;
3751-
desc.images[2].stage = .FRAGMENT;
3752-
desc.images[2].multisampled = false;
3753-
desc.images[2].image_type = ._2D;
3754-
desc.images[2].sample_type = .FLOAT;
3755-
desc.images[2].msl_texture_n = 1;
3756-
desc.samplers[1].stage = .FRAGMENT;
3757-
desc.samplers[1].sampler_type = .FILTERING;
3758-
desc.samplers[1].msl_sampler_n = 0;
3755+
desc.images[1].msl_texture_n = 1;
3756+
desc.samplers[0].stage = .FRAGMENT;
3757+
desc.samplers[0].sampler_type = .FILTERING;
3758+
desc.samplers[0].msl_sampler_n = 0;
37593759
desc.image_sampler_pairs[0].stage = .FRAGMENT;
3760-
desc.image_sampler_pairs[0].image_slot = 1;
3761-
desc.image_sampler_pairs[0].sampler_slot = 1;
3760+
desc.image_sampler_pairs[0].image_slot = 0;
3761+
desc.image_sampler_pairs[0].sampler_slot = 0;
37623762
desc.image_sampler_pairs[1].stage = .FRAGMENT;
3763-
desc.image_sampler_pairs[1].image_slot = 2;
3764-
desc.image_sampler_pairs[1].sampler_slot = 1;
3763+
desc.image_sampler_pairs[1].image_slot = 1;
3764+
desc.image_sampler_pairs[1].sampler_slot = 0;
37653765
},
37663766
.METAL_IOS => {
37673767
desc.vertex_func.source = &vs_source_metal_ios;
@@ -3781,25 +3781,25 @@ pub fn emissiveShaderDesc(backend: sg.Backend) sg.ShaderDesc {
37813781
desc.uniform_blocks[1].layout = .STD140;
37823782
desc.uniform_blocks[1].size = 656;
37833783
desc.uniform_blocks[1].msl_buffer_n = 0;
3784+
desc.images[0].stage = .FRAGMENT;
3785+
desc.images[0].multisampled = false;
3786+
desc.images[0].image_type = ._2D;
3787+
desc.images[0].sample_type = .FLOAT;
3788+
desc.images[0].msl_texture_n = 0;
37843789
desc.images[1].stage = .FRAGMENT;
37853790
desc.images[1].multisampled = false;
37863791
desc.images[1].image_type = ._2D;
37873792
desc.images[1].sample_type = .FLOAT;
3788-
desc.images[1].msl_texture_n = 0;
3789-
desc.images[2].stage = .FRAGMENT;
3790-
desc.images[2].multisampled = false;
3791-
desc.images[2].image_type = ._2D;
3792-
desc.images[2].sample_type = .FLOAT;
3793-
desc.images[2].msl_texture_n = 1;
3794-
desc.samplers[1].stage = .FRAGMENT;
3795-
desc.samplers[1].sampler_type = .FILTERING;
3796-
desc.samplers[1].msl_sampler_n = 0;
3793+
desc.images[1].msl_texture_n = 1;
3794+
desc.samplers[0].stage = .FRAGMENT;
3795+
desc.samplers[0].sampler_type = .FILTERING;
3796+
desc.samplers[0].msl_sampler_n = 0;
37973797
desc.image_sampler_pairs[0].stage = .FRAGMENT;
3798-
desc.image_sampler_pairs[0].image_slot = 1;
3799-
desc.image_sampler_pairs[0].sampler_slot = 1;
3798+
desc.image_sampler_pairs[0].image_slot = 0;
3799+
desc.image_sampler_pairs[0].sampler_slot = 0;
38003800
desc.image_sampler_pairs[1].stage = .FRAGMENT;
3801-
desc.image_sampler_pairs[1].image_slot = 2;
3802-
desc.image_sampler_pairs[1].sampler_slot = 1;
3801+
desc.image_sampler_pairs[1].image_slot = 1;
3802+
desc.image_sampler_pairs[1].sampler_slot = 0;
38033803
},
38043804
.METAL_SIMULATOR => {
38053805
desc.vertex_func.source = &vs_source_metal_sim;
@@ -3819,25 +3819,25 @@ pub fn emissiveShaderDesc(backend: sg.Backend) sg.ShaderDesc {
38193819
desc.uniform_blocks[1].layout = .STD140;
38203820
desc.uniform_blocks[1].size = 656;
38213821
desc.uniform_blocks[1].msl_buffer_n = 0;
3822+
desc.images[0].stage = .FRAGMENT;
3823+
desc.images[0].multisampled = false;
3824+
desc.images[0].image_type = ._2D;
3825+
desc.images[0].sample_type = .FLOAT;
3826+
desc.images[0].msl_texture_n = 0;
38223827
desc.images[1].stage = .FRAGMENT;
38233828
desc.images[1].multisampled = false;
38243829
desc.images[1].image_type = ._2D;
38253830
desc.images[1].sample_type = .FLOAT;
3826-
desc.images[1].msl_texture_n = 0;
3827-
desc.images[2].stage = .FRAGMENT;
3828-
desc.images[2].multisampled = false;
3829-
desc.images[2].image_type = ._2D;
3830-
desc.images[2].sample_type = .FLOAT;
3831-
desc.images[2].msl_texture_n = 1;
3832-
desc.samplers[1].stage = .FRAGMENT;
3833-
desc.samplers[1].sampler_type = .FILTERING;
3834-
desc.samplers[1].msl_sampler_n = 0;
3831+
desc.images[1].msl_texture_n = 1;
3832+
desc.samplers[0].stage = .FRAGMENT;
3833+
desc.samplers[0].sampler_type = .FILTERING;
3834+
desc.samplers[0].msl_sampler_n = 0;
38353835
desc.image_sampler_pairs[0].stage = .FRAGMENT;
3836-
desc.image_sampler_pairs[0].image_slot = 1;
3837-
desc.image_sampler_pairs[0].sampler_slot = 1;
3836+
desc.image_sampler_pairs[0].image_slot = 0;
3837+
desc.image_sampler_pairs[0].sampler_slot = 0;
38383838
desc.image_sampler_pairs[1].stage = .FRAGMENT;
3839-
desc.image_sampler_pairs[1].image_slot = 2;
3840-
desc.image_sampler_pairs[1].sampler_slot = 1;
3839+
desc.image_sampler_pairs[1].image_slot = 1;
3840+
desc.image_sampler_pairs[1].sampler_slot = 0;
38413841
},
38423842
.WGPU => {
38433843
desc.vertex_func.source = &vs_source_wgsl;
@@ -3857,25 +3857,25 @@ pub fn emissiveShaderDesc(backend: sg.Backend) sg.ShaderDesc {
38573857
desc.uniform_blocks[1].layout = .STD140;
38583858
desc.uniform_blocks[1].size = 656;
38593859
desc.uniform_blocks[1].wgsl_group0_binding_n = 8;
3860+
desc.images[0].stage = .FRAGMENT;
3861+
desc.images[0].multisampled = false;
3862+
desc.images[0].image_type = ._2D;
3863+
desc.images[0].sample_type = .FLOAT;
3864+
desc.images[0].wgsl_group1_binding_n = 64;
38603865
desc.images[1].stage = .FRAGMENT;
38613866
desc.images[1].multisampled = false;
38623867
desc.images[1].image_type = ._2D;
38633868
desc.images[1].sample_type = .FLOAT;
3864-
desc.images[1].wgsl_group1_binding_n = 64;
3865-
desc.images[2].stage = .FRAGMENT;
3866-
desc.images[2].multisampled = false;
3867-
desc.images[2].image_type = ._2D;
3868-
desc.images[2].sample_type = .FLOAT;
3869-
desc.images[2].wgsl_group1_binding_n = 65;
3870-
desc.samplers[1].stage = .FRAGMENT;
3871-
desc.samplers[1].sampler_type = .FILTERING;
3872-
desc.samplers[1].wgsl_group1_binding_n = 80;
3869+
desc.images[1].wgsl_group1_binding_n = 65;
3870+
desc.samplers[0].stage = .FRAGMENT;
3871+
desc.samplers[0].sampler_type = .FILTERING;
3872+
desc.samplers[0].wgsl_group1_binding_n = 80;
38733873
desc.image_sampler_pairs[0].stage = .FRAGMENT;
3874-
desc.image_sampler_pairs[0].image_slot = 1;
3875-
desc.image_sampler_pairs[0].sampler_slot = 1;
3874+
desc.image_sampler_pairs[0].image_slot = 0;
3875+
desc.image_sampler_pairs[0].sampler_slot = 0;
38763876
desc.image_sampler_pairs[1].stage = .FRAGMENT;
3877-
desc.image_sampler_pairs[1].image_slot = 2;
3878-
desc.image_sampler_pairs[1].sampler_slot = 1;
3877+
desc.image_sampler_pairs[1].image_slot = 1;
3878+
desc.image_sampler_pairs[1].sampler_slot = 0;
38793879
},
38803880
else => {},
38813881
}
@@ -3901,16 +3901,16 @@ pub fn emissiveAttrSlot(attr_name: []const u8) ?usize {
39013901
}
39023902
pub fn emissiveImageSlot(img_name: []const u8) ?usize {
39033903
if (std.mem.eql(u8, img_name, "tex")) {
3904-
return 1;
3904+
return 0;
39053905
}
39063906
if (std.mem.eql(u8, img_name, "tex_emissive")) {
3907-
return 2;
3907+
return 1;
39083908
}
39093909
return null;
39103910
}
39113911
pub fn emissiveSamplerSlot(smp_name: []const u8) ?usize {
39123912
if (std.mem.eql(u8, smp_name, "smp")) {
3913-
return 1;
3913+
return 0;
39143914
}
39153915
return null;
39163916
}

0 commit comments

Comments
 (0)