From 434fe87fa0c2c4793871b1c9a751bdb30f0e3222 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 7 Jun 2025 12:33:47 -0400 Subject: [PATCH] Maint: Updated Harfbuzz & Sokol libs to latest. Fixed breaking changes for sokol backend. --- backend/sokol/backend_sokol.odin | 22 +- backend/sokol/blit_atlas.odin | 1402 ++++--- backend/sokol/draw_text.odin | 539 ++- backend/sokol/render_glyph.odin | 106 +- thirdparty/harfbuzz/.gitignore | 1 + thirdparty/harfbuzz/lib/win64/harfbuzz.dll | Bin 898560 -> 896512 bytes .../app/sokol_app_windows_x64_d3d11_debug.lib | Bin 643826 -> 643986 bytes .../sokol_app_windows_x64_d3d11_release.lib | Bin 109938 -> 109972 bytes .../app/sokol_app_windows_x64_gl_debug.lib | Bin 252642 -> 252642 bytes .../app/sokol_app_windows_x64_gl_release.lib | Bin 123134 -> 123134 bytes .../sokol_audio_windows_x64_d3d11_debug.lib | Bin 148758 -> 148758 bytes .../sokol_audio_windows_x64_d3d11_release.lib | Bin 30008 -> 30008 bytes .../sokol_audio_windows_x64_gl_debug.lib | Bin 148758 -> 148758 bytes .../sokol_audio_windows_x64_gl_release.lib | Bin 30008 -> 30008 bytes thirdparty/sokol/c/sokol_app.h | 43 +- thirdparty/sokol/c/sokol_debugtext.h | 4 +- thirdparty/sokol/c/sokol_gfx.h | 3319 +++++++++++------ thirdparty/sokol/c/sokol_gl.h | 4 +- thirdparty/sokol/c/sokol_shape.h | 8 +- ...okol_debugtext_windows_x64_d3d11_debug.lib | Bin 142254 -> 142742 bytes ...ol_debugtext_windows_x64_d3d11_release.lib | Bin 60892 -> 60886 bytes .../sokol_debugtext_windows_x64_gl_debug.lib | Bin 141454 -> 141942 bytes ...sokol_debugtext_windows_x64_gl_release.lib | Bin 60140 -> 60134 bytes thirdparty/sokol/gfx/gfx.odin | 513 ++- .../gfx/sokol_gfx_windows_x64_d3d11_debug.lib | Bin 1114514 -> 1147198 bytes .../sokol_gfx_windows_x64_d3d11_release.lib | Bin 225856 -> 230832 bytes .../gfx/sokol_gfx_windows_x64_gl_debug.lib | Bin 781692 -> 821626 bytes .../gfx/sokol_gfx_windows_x64_gl_release.lib | Bin 308658 -> 321570 bytes .../gl/sokol_gl_windows_x64_d3d11_debug.lib | Bin 201018 -> 201506 bytes .../gl/sokol_gl_windows_x64_d3d11_release.lib | Bin 83326 -> 83324 bytes .../gl/sokol_gl_windows_x64_gl_debug.lib | Bin 200056 -> 200544 bytes .../gl/sokol_gl_windows_x64_gl_release.lib | Bin 82396 -> 82394 bytes .../sokol_glue_windows_x64_d3d11_debug.lib | Bin 13964 -> 14036 bytes .../sokol_glue_windows_x64_d3d11_release.lib | Bin 2990 -> 2990 bytes .../glue/sokol_glue_windows_x64_gl_debug.lib | Bin 13964 -> 14036 bytes .../sokol_glue_windows_x64_gl_release.lib | Bin 2990 -> 2990 bytes .../log/sokol_log_windows_x64_d3d11_debug.lib | Bin 24200 -> 24200 bytes .../sokol_log_windows_x64_d3d11_release.lib | Bin 8414 -> 8414 bytes .../log/sokol_log_windows_x64_gl_debug.lib | Bin 24200 -> 24200 bytes .../log/sokol_log_windows_x64_gl_release.lib | Bin 8414 -> 8414 bytes .../sokol_shape_windows_x64_d3d11_debug.lib | Bin 86898 -> 86634 bytes .../sokol_shape_windows_x64_d3d11_release.lib | Bin 44988 -> 44976 bytes .../sokol_shape_windows_x64_gl_debug.lib | Bin 86898 -> 86634 bytes .../sokol_shape_windows_x64_gl_release.lib | Bin 44988 -> 44976 bytes .../sokol_dll_windows_x64_d3d11_debug.dll | Bin 515584 -> 530432 bytes .../sokol_dll_windows_x64_d3d11_debug.exp | Bin 50363 -> 50225 bytes .../sokol_dll_windows_x64_d3d11_debug.lib | Bin 93968 -> 93716 bytes .../sokol_dll_windows_x64_d3d11_debug.pdb | Bin 1642496 -> 1650688 bytes .../sokol_dll_windows_x64_d3d11_release.dll | Bin 508416 -> 522752 bytes .../sokol_dll_windows_x64_d3d11_release.exp | Bin 50367 -> 50229 bytes .../sokol_dll_windows_x64_d3d11_release.lib | Bin 94762 -> 94508 bytes .../sokol/sokol_dll_windows_x64_gl_debug.dll | Bin 529920 -> 546304 bytes .../sokol/sokol_dll_windows_x64_gl_debug.exp | Bin 50356 -> 50220 bytes .../sokol/sokol_dll_windows_x64_gl_debug.lib | Bin 92858 -> 92610 bytes .../sokol/sokol_dll_windows_x64_gl_debug.pdb | Bin 1241088 -> 1257472 bytes .../sokol_dll_windows_x64_gl_release.dll | Bin 522240 -> 538624 bytes .../sokol_dll_windows_x64_gl_release.exp | Bin 50360 -> 50224 bytes .../sokol_dll_windows_x64_gl_release.lib | Bin 93652 -> 93402 bytes .../sokol_time_windows_x64_d3d11_debug.lib | Bin 26600 -> 26600 bytes .../sokol_time_windows_x64_d3d11_release.lib | Bin 5436 -> 5436 bytes .../time/sokol_time_windows_x64_gl_debug.lib | Bin 26600 -> 26600 bytes .../sokol_time_windows_x64_gl_release.lib | Bin 5436 -> 5436 bytes 62 files changed, 3504 insertions(+), 2457 deletions(-) create mode 100644 thirdparty/harfbuzz/.gitignore diff --git a/backend/sokol/backend_sokol.odin b/backend/sokol/backend_sokol.odin index efa356b..6963775 100644 --- a/backend/sokol/backend_sokol.odin +++ b/backend/sokol/backend_sokol.odin @@ -39,11 +39,11 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index Blend_State :: gfx.Blend_State Border_Color :: gfx.Border_Color Buffer_Desciption :: gfx.Buffer_Desc - Buffer_Usage :: gfx.Usage - Buffer_Type :: gfx.Buffer_Type + Buffer_Usage :: gfx.Buffer_Usage Color_Target_State :: gfx.Color_Target_State Filter :: gfx.Filter Image_Desc :: gfx.Image_Desc + Image_Usage :: gfx.Image_Usage Pass_Action :: gfx.Pass_Action Range :: gfx.Range Resource_State :: gfx.Resource_State @@ -65,15 +65,13 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index ctx.draw_list_vbuf = gfx.make_buffer( Buffer_Desciption { size = cast(uint)(size_of([4]f32) * vert_cap), - usage = Buffer_Usage.STREAM, - type = Buffer_Type.VERTEXBUFFER, + usage = Buffer_Usage { vertex_buffer = true, dynamic_update = true, immutable = false }, }) assert( gfx.query_buffer_state( ctx.draw_list_vbuf) < Resource_State.FAILED, "Failed to make draw_list_vbuf" ) ctx.draw_list_ibuf = gfx.make_buffer( Buffer_Desciption { size = cast(uint)(size_of(u32) * index_cap), - usage = Buffer_Usage.STREAM, - type = Buffer_Type.INDEXBUFFER, + usage = { index_buffer = true, dynamic_update = true, immutable = false }, }) assert( gfx.query_buffer_state( ctx.draw_list_ibuf) < Resource_State.FAILED, "Failed to make draw_list_iubuf" ) @@ -136,12 +134,11 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index { ctx.glyph_rt_color = gfx.make_image( Image_Desc { type = ._2D, - render_target = true, + usage = Image_Usage { render_attachment = true, immutable = true }, width = i32(ve_ctx.glyph_buffer.size.x), height = i32(ve_ctx.glyph_buffer.size.y), num_slices = 1, num_mipmaps = 1, - usage = .IMMUTABLE, pixel_format = .R8, sample_count = 1, }) @@ -149,12 +146,11 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index ctx.glyph_rt_depth = gfx.make_image( Image_Desc { type = ._2D, - render_target = true, + usage = Image_Usage { render_attachment = true, immutable = true }, width = i32(ve_ctx.glyph_buffer.size.x), height = i32(ve_ctx.glyph_buffer.size.y), num_slices = 1, num_mipmaps = 1, - usage = .IMMUTABLE, pixel_format = .DEPTH, sample_count = 1, }) @@ -270,12 +266,11 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index { ctx.atlas_rt_color = gfx.make_image( Image_Desc { type = ._2D, - render_target = true, + usage = { render_attachment = true, immutable = true }, width = i32(ve_ctx.atlas.size.x), height = i32(ve_ctx.atlas.size.y), num_slices = 1, num_mipmaps = 1, - usage = .IMMUTABLE, pixel_format = .R8, sample_count = 1, // TODO(Ed): Setup labels for debug tracing/logging @@ -285,12 +280,11 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index ctx.atlas_rt_depth = gfx.make_image( Image_Desc { type = ._2D, - render_target = true, + usage = { render_attachment = true, immutable = true }, width = i32(ve_ctx.atlas.size.x), height = i32(ve_ctx.atlas.size.y), num_slices = 1, num_mipmaps = 1, - usage = .IMMUTABLE, pixel_format = .DEPTH, sample_count = 1, }) diff --git a/backend/sokol/blit_atlas.odin b/backend/sokol/blit_atlas.odin index b1c164b..3ab70d0 100644 --- a/backend/sokol/blit_atlas.odin +++ b/backend/sokol/blit_atlas.odin @@ -93,7 +93,7 @@ blit_atlas_vs_source_glsl410 := [235]u8 { float down_sample_to_texture(vec2 uv_1, vec2 texture_size) { - return (1.0 / _20.over_sample) * (((texture(blit_atlas_src_texture_blit_atlas_src_sampler, uv_1).x + texture(blit_atlas_src_texture_blit_atlas_src_sampler, fma(vec2(0.0, 1.0), texture_size, uv_1)).x) + texture(blit_atlas_src_texture_blit_atlas_src_sampler, fma(vec2(1.0, 0.0), texture_size, uv_1)).x) + texture(blit_atlas_src_texture_blit_atlas_src_sampler, uv_1 + texture_size).x); + return (1.0 / _20.over_sample) * (((texture(blit_atlas_src_texture_blit_atlas_src_sampler, uv_1).x + texture(blit_atlas_src_texture_blit_atlas_src_sampler, uv_1 + (vec2(0.0, 1.0) * texture_size)).x) + texture(blit_atlas_src_texture_blit_atlas_src_sampler, uv_1 + (vec2(1.0, 0.0) * texture_size)).x) + texture(blit_atlas_src_texture_blit_atlas_src_sampler, uv_1 + texture_size).x); } void main() @@ -147,7 +147,7 @@ blit_atlas_vs_source_glsl410 := [235]u8 { */ @(private="file") -blit_atlas_fs_source_glsl410 := [1918]u8 { +blit_atlas_fs_source_glsl410 := [1916]u8 { 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x73,0x74, 0x72,0x75,0x63,0x74,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, 0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, @@ -180,94 +180,94 @@ blit_atlas_fs_source_glsl410 := [1918]u8 { 0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63, 0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74, 0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c, - 0x20,0x66,0x6d,0x61,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31, - 0x2e,0x30,0x29,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, - 0x65,0x2c,0x20,0x75,0x76,0x5f,0x31,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74, - 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61, - 0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x62,0x6c, - 0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x72,0x2c,0x20,0x66,0x6d,0x61,0x28,0x76,0x65,0x63,0x32,0x28,0x31, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x75,0x76,0x5f,0x31,0x29,0x29,0x2e,0x78, - 0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x62,0x6c,0x69,0x74, - 0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x5f,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72, - 0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x5f,0x31,0x20, - 0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2e, - 0x78,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e, - 0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x39, - 0x38,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x20,0x2f,0x20, - 0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72, - 0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, - 0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f, - 0x6e,0x20,0x3d,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21, - 0x5f,0x31,0x30,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72, - 0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20, - 0x5f,0x31,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x21,0x5f,0x31,0x31,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x38,0x20,0x3d,0x20,0x5f, - 0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31, - 0x38,0x20,0x3d,0x20,0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x31,0x38,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x36, - 0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d, - 0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x36, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x76,0x20, - 0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x31, - 0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f, - 0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x75,0x76,0x5f,0x31,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e, + 0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73, + 0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x62,0x6c,0x69, + 0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x5f,0x31,0x20,0x2b,0x20,0x28,0x76,0x65,0x63, + 0x32,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x20,0x2a,0x20,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x29,0x2e,0x78,0x29,0x20, + 0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61, + 0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x5f,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x5f,0x31,0x20,0x2b,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2e,0x78,0x29, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x39,0x38,0x20, + 0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x20,0x2f,0x20,0x5f,0x32, + 0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73, + 0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31, + 0x30,0x34,0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20, + 0x3d,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, + 0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31, + 0x30,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67, + 0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x5f,0x31, + 0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x21,0x5f,0x31,0x31,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x38,0x20,0x3d,0x20,0x5f,0x32,0x30, + 0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x38,0x20, + 0x3d,0x20,0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x36,0x20,0x3d, + 0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x34, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x31,0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x36,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20, + 0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x35, + 0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75, + 0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x75, + 0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x2c,0x20,0x2d, + 0x31,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68, + 0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20, + 0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x31,0x2e, + 0x35,0x2c,0x20,0x30,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c, + 0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, - 0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x2c, - 0x20,0x2d,0x31,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79, - 0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x34,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d, - 0x31,0x2e,0x35,0x2c,0x20,0x30,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e, - 0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a, - 0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63, - 0x32,0x28,0x30,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79, - 0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20, - 0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c, - 0x20,0x31,0x2e,0x30,0x2c,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x5f,0x32,0x30, - 0x2e,0x6f,0x76,0x65,0x72,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x29,0x20,0x2a,0x20, - 0x28,0x28,0x28,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74, - 0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e, - 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x29,0x29,0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29, - 0x29,0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, - 0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, - 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, + 0x5f,0x36,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28, + 0x30,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68, + 0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, + 0x76,0x65,0x63,0x34,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x31, + 0x2e,0x30,0x2c,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x6f, + 0x76,0x65,0x72,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x28, + 0x28,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x29,0x29,0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x20, + 0x2b,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f, + 0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x30, + 0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, } /* #version 300 es @@ -321,7 +321,7 @@ blit_atlas_vs_source_glsl300es := [217]u8 { highp float down_sample_to_texture(highp vec2 uv_1, highp vec2 texture_size) { - return (1.0 / _20.over_sample) * (((texture(blit_atlas_src_texture_blit_atlas_src_sampler, uv_1).x + texture(blit_atlas_src_texture_blit_atlas_src_sampler, vec2(0.0, 1.0) * texture_size + uv_1).x) + texture(blit_atlas_src_texture_blit_atlas_src_sampler, vec2(1.0, 0.0) * texture_size + uv_1).x) + texture(blit_atlas_src_texture_blit_atlas_src_sampler, uv_1 + texture_size).x); + return (1.0 / _20.over_sample) * (((texture(blit_atlas_src_texture_blit_atlas_src_sampler, uv_1).x + texture(blit_atlas_src_texture_blit_atlas_src_sampler, uv_1 + (vec2(0.0, 1.0) * texture_size)).x) + texture(blit_atlas_src_texture_blit_atlas_src_sampler, uv_1 + (vec2(1.0, 0.0) * texture_size)).x) + texture(blit_atlas_src_texture_blit_atlas_src_sampler, uv_1 + texture_size).x); } void main() @@ -375,7 +375,7 @@ blit_atlas_vs_source_glsl300es := [217]u8 { */ @(private="file") -blit_atlas_fs_source_glsl300es := [2042]u8 { +blit_atlas_fs_source_glsl300es := [2046]u8 { 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d, 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x70,0x72,0x65,0x63,0x69,0x73,0x69, @@ -412,98 +412,98 @@ blit_atlas_fs_source_glsl300es := [2042]u8 { 0x29,0x2e,0x78,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x62,0x6c, 0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78, 0x74,0x75,0x72,0x65,0x5f,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, - 0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63, - 0x32,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x20,0x2a,0x20,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x20,0x2b,0x20,0x75,0x76,0x5f, - 0x31,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, - 0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74, - 0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61, - 0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76, - 0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x20,0x2a,0x20, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x20,0x2b,0x20,0x75, - 0x76,0x5f,0x31,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72, + 0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x5f, + 0x31,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31, + 0x2e,0x30,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69, + 0x7a,0x65,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72, 0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63, 0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74, 0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c, - 0x20,0x75,0x76,0x5f,0x31,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f, - 0x73,0x69,0x7a,0x65,0x29,0x2e,0x78,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69, - 0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x39,0x38,0x20,0x3d,0x20, - 0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e, - 0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a, - 0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x34, - 0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d, - 0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x31, - 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x30,0x34, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f, - 0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x5f,0x31,0x30,0x34, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21, - 0x5f,0x31,0x31,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x38,0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72, - 0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x75,0x76,0x5f,0x31,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x31,0x2e, + 0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73, + 0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x62,0x6c,0x69, + 0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x5f,0x31,0x20,0x2b,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2e,0x78,0x29,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x39, + 0x38,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x20,0x2f,0x20, + 0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72, + 0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f, + 0x6e,0x20,0x3d,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, + 0x20,0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21, + 0x5f,0x31,0x30,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72, + 0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x38,0x20,0x3d,0x20, - 0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x21,0x5f,0x31,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x36,0x20,0x3d,0x20,0x5f, - 0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x34,0x3b,0x0a, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20, + 0x5f,0x31,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x21,0x5f,0x31,0x31,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x38,0x20,0x3d,0x20,0x5f, + 0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x32,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32, - 0x36,0x20,0x3d,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x36,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75, - 0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x31,0x2e,0x30,0x2c,0x20, - 0x2d,0x31,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70, - 0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x39,0x38, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31, + 0x38,0x20,0x3d,0x20,0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x31,0x38,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x36, + 0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d, + 0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x36, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x31, + 0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e, + 0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a, + 0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, + 0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e, + 0x35,0x2c,0x20,0x2d,0x31,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67, + 0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20, + 0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20, + 0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x31,0x2e, + 0x35,0x2c,0x20,0x30,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c, + 0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x75, - 0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x2c,0x20,0x2d, - 0x31,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68, - 0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x75,0x76, - 0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x31,0x2e,0x35,0x2c,0x20,0x30, - 0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f, - 0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x75,0x76,0x20, - 0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f, - 0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f, - 0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x37,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x34,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, - 0x2c,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x6f,0x76,0x65, - 0x72,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x28,0x28,0x64, - 0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x29,0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d, + 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f, + 0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d, + 0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29, + 0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66, + 0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20, + 0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c, + 0x20,0x31,0x2e,0x30,0x2c,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x5f,0x32,0x30, + 0x2e,0x6f,0x76,0x65,0x72,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x29,0x20,0x2a,0x20, + 0x28,0x28,0x28,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74, + 0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e, + 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x29,0x29,0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d, 0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29, + 0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29, 0x29,0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, 0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x20,0x2b,0x20, - 0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74, - 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20, - 0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, + 0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30, + 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, } /* static float4 gl_Position; @@ -614,7 +614,7 @@ blit_atlas_vs_source_hlsl4 := [705]u8 { float down_sample_to_texture(float2 uv_1, float2 texture_size) { - return (1.0f / _20_over_sample) * (((blit_atlas_src_texture.Sample(blit_atlas_src_sampler, uv_1).x + blit_atlas_src_texture.Sample(blit_atlas_src_sampler, mad(float2(0.0f, 1.0f), texture_size, uv_1)).x) + blit_atlas_src_texture.Sample(blit_atlas_src_sampler, mad(float2(1.0f, 0.0f), texture_size, uv_1)).x) + blit_atlas_src_texture.Sample(blit_atlas_src_sampler, uv_1 + texture_size).x); + return (1.0f / _20_over_sample) * (((blit_atlas_src_texture.Sample(blit_atlas_src_sampler, uv_1).x + blit_atlas_src_texture.Sample(blit_atlas_src_sampler, uv_1 + (float2(0.0f, 1.0f) * texture_size)).x) + blit_atlas_src_texture.Sample(blit_atlas_src_sampler, uv_1 + (float2(1.0f, 0.0f) * texture_size)).x) + blit_atlas_src_texture.Sample(blit_atlas_src_sampler, uv_1 + texture_size).x); } void frag_main() @@ -676,7 +676,7 @@ blit_atlas_vs_source_hlsl4 := [705]u8 { } */ @(private="file") -blit_atlas_fs_source_hlsl4 := [2350]u8 { +blit_atlas_fs_source_hlsl4 := [2348]u8 { 0x63,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c, 0x61,0x73,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3a,0x20,0x72, 0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x62,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20, @@ -720,110 +720,110 @@ blit_atlas_fs_source_hlsl4 := [2350]u8 { 0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74, 0x75,0x72,0x65,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f, 0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x72,0x2c,0x20,0x6d,0x61,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, - 0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x75,0x76,0x5f,0x31,0x29,0x29,0x2e, - 0x78,0x29,0x20,0x2b,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, - 0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x53,0x61,0x6d,0x70, - 0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72, - 0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x6d,0x61,0x64,0x28,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x66,0x2c,0x20,0x30,0x2e,0x30,0x66, - 0x29,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x2c, - 0x20,0x75,0x76,0x5f,0x31,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x62,0x6c,0x69, - 0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f, - 0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x72,0x2c,0x20,0x75,0x76,0x5f,0x31,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2e,0x78,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76, - 0x6f,0x69,0x64,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x39,0x38, - 0x20,0x3d,0x20,0x31,0x2e,0x30,0x66,0x2e,0x78,0x78,0x20,0x2f,0x20,0x5f,0x32,0x30, - 0x5f,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69, - 0x7a,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30, - 0x34,0x20,0x3d,0x20,0x5f,0x32,0x30,0x5f,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d, - 0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31, - 0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x30, - 0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x5f,0x32,0x30,0x5f,0x72,0x65,0x67,0x69, - 0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x5f,0x31,0x30, - 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x21,0x5f,0x31,0x31,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x38,0x20,0x3d,0x20,0x5f,0x32,0x30,0x5f, - 0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x38,0x20,0x3d, - 0x20,0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x36,0x20,0x3d,0x20, - 0x5f,0x32,0x30,0x5f,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x34,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, - 0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x36,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b, - 0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x31,0x2e,0x30,0x66,0x2c,0x20, - 0x2d,0x31,0x2e,0x35,0x66,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x5f,0x67,0x6c,0x79, - 0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20, + 0x72,0x2c,0x20,0x75,0x76,0x5f,0x31,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x28,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x20,0x2a,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x29,0x2e,0x78, + 0x29,0x20,0x2b,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73, + 0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x53,0x61,0x6d,0x70,0x6c, + 0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63, + 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x5f,0x31,0x20,0x2b, + 0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x66,0x2c,0x20,0x30, + 0x2e,0x30,0x66,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73, + 0x69,0x7a,0x65,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x62,0x6c,0x69,0x74,0x5f, + 0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74, + 0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c, + 0x20,0x75,0x76,0x5f,0x31,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f, + 0x73,0x69,0x7a,0x65,0x29,0x2e,0x78,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69, + 0x64,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x39,0x38,0x20,0x3d, + 0x20,0x31,0x2e,0x30,0x66,0x2e,0x78,0x78,0x20,0x2f,0x20,0x5f,0x32,0x30,0x5f,0x67, + 0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x34,0x20, + 0x3d,0x20,0x5f,0x32,0x30,0x5f,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x31,0x31, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x30,0x34,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x31,0x31,0x31,0x20,0x3d,0x20,0x5f,0x32,0x30,0x5f,0x72,0x65,0x67,0x69,0x6f,0x6e, + 0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x5f,0x31,0x30,0x34,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f, + 0x31,0x31,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x31,0x31,0x38,0x20,0x3d,0x20,0x5f,0x32,0x30,0x5f,0x72,0x65, + 0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x38,0x20,0x3d,0x20,0x5f, + 0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x21,0x5f,0x31,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x36,0x20,0x3d,0x20,0x5f,0x32, + 0x30,0x5f,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x34,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x36, + 0x20,0x3d,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x36,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x31,0x2e,0x30,0x66,0x2c,0x20,0x2d,0x31, + 0x2e,0x35,0x66,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x5f,0x67,0x6c,0x79,0x70,0x68, + 0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x66,0x2c,0x20,0x2d,0x31,0x2e,0x35,0x66, - 0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x5f,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75, - 0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, - 0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, - 0x2d,0x31,0x2e,0x35,0x66,0x2c,0x20,0x30,0x2e,0x35,0x66,0x29,0x20,0x2f,0x20,0x5f, - 0x32,0x30,0x5f,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f, - 0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, - 0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x75,0x76, - 0x20,0x2b,0x20,0x28,0x30,0x2e,0x35,0x66,0x2e,0x78,0x78,0x20,0x2f,0x20,0x5f,0x32, - 0x30,0x5f,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73, - 0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f, - 0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, - 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, - 0x31,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66, - 0x2c,0x20,0x28,0x31,0x2e,0x30,0x66,0x20,0x2f,0x20,0x5f,0x32,0x30,0x5f,0x6f,0x76, - 0x65,0x72,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x28,0x28, - 0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74, - 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, - 0x29,0x29,0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x20,0x2b, - 0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, - 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e, - 0x30,0x66,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20, - 0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a, - 0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70, - 0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72, - 0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, - 0x69,0x6e,0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x75,0x76,0x20, - 0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x75,0x76, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f, - 0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, - 0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67, - 0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61, - 0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x00, + 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x28,0x30,0x2e,0x35,0x66,0x2c,0x20,0x2d,0x31,0x2e,0x35,0x66,0x29,0x20, + 0x2f,0x20,0x5f,0x32,0x30,0x5f,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66, + 0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d, + 0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x31, + 0x2e,0x35,0x66,0x2c,0x20,0x30,0x2e,0x35,0x66,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30, + 0x5f,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69, + 0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x39, + 0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b, + 0x20,0x28,0x30,0x2e,0x35,0x66,0x2e,0x78,0x78,0x20,0x2f,0x20,0x5f,0x32,0x30,0x5f, + 0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a, + 0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x39,0x38, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, + 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x31,0x2e, + 0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x2c,0x20, + 0x28,0x31,0x2e,0x30,0x66,0x20,0x2f,0x20,0x5f,0x32,0x30,0x5f,0x6f,0x76,0x65,0x72, + 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x28,0x28,0x64,0x6f, + 0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x29,0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x29, + 0x20,0x2b,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74, + 0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x20,0x2b,0x20,0x64, + 0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, + 0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x66, + 0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e, + 0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x53,0x50, + 0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74, + 0x20,0x6d,0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73, + 0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e, + 0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x75,0x76,0x20,0x3d,0x20, + 0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x75,0x76,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73, + 0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75, + 0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, + 0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61,0x67,0x65, + 0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x00, } /* #include @@ -913,7 +913,7 @@ blit_atlas_vs_source_metal_macos := [473]u8 { static inline __attribute__((always_inline)) float down_sample_to_texture(thread const float2& uv, thread const float2& texture_size, constant blit_atlas_fs_params& _20, texture2d blit_atlas_src_texture, sampler blit_atlas_src_sampler) { - return (1.0 / _20.over_sample) * (((blit_atlas_src_texture.sample(blit_atlas_src_sampler, uv).x + blit_atlas_src_texture.sample(blit_atlas_src_sampler, fma(float2(0.0, 1.0), texture_size, uv)).x) + blit_atlas_src_texture.sample(blit_atlas_src_sampler, fma(float2(1.0, 0.0), texture_size, uv)).x) + blit_atlas_src_texture.sample(blit_atlas_src_sampler, (uv + texture_size)).x); + return (1.0 / _20.over_sample) * (((blit_atlas_src_texture.sample(blit_atlas_src_sampler, uv).x + blit_atlas_src_texture.sample(blit_atlas_src_sampler, (uv + (float2(0.0, 1.0) * texture_size))).x) + blit_atlas_src_texture.sample(blit_atlas_src_sampler, (uv + (float2(1.0, 0.0) * texture_size))).x) + blit_atlas_src_texture.sample(blit_atlas_src_sampler, (uv + texture_size)).x); } fragment main0_out main0(main0_in in [[stage_in]], constant blit_atlas_fs_params& _20 [[buffer(0)]], texture2d blit_atlas_src_texture [[texture(0)]], sampler blit_atlas_src_sampler [[sampler(0)]]) @@ -969,7 +969,7 @@ blit_atlas_vs_source_metal_macos := [473]u8 { */ @(private="file") -blit_atlas_fs_source_metal_macos := [2644]u8 { +blit_atlas_fs_source_metal_macos := [2646]u8 { 0x23,0x70,0x72,0x61,0x67,0x6d,0x61,0x20,0x63,0x6c,0x61,0x6e,0x67,0x20,0x64,0x69, 0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64, 0x20,0x22,0x2d,0x57,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x2d,0x70,0x72,0x6f,0x74, @@ -1016,126 +1016,126 @@ blit_atlas_fs_source_metal_macos := [2644]u8 { 0x20,0x2b,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72, 0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65, 0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x66,0x6d,0x61,0x28,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x74, - 0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x75,0x76,0x29, - 0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61, - 0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, - 0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x66,0x6d,0x61, - 0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, - 0x29,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x2c, - 0x20,0x75,0x76,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x62,0x6c,0x69,0x74,0x5f, - 0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74, - 0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c, - 0x20,0x28,0x75,0x76,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73, - 0x69,0x7a,0x65,0x29,0x29,0x2e,0x78,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x72,0x61, - 0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20, - 0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69, - 0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20, - 0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74, - 0x6c,0x61,0x73,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f, - 0x32,0x30,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d, - 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61, - 0x74,0x3e,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72, - 0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x72,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63, - 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d, - 0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b, - 0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x39, - 0x38,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x20, - 0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66, - 0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67, - 0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x21,0x5f,0x31,0x30,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x5f,0x32,0x30, - 0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x31,0x20, - 0x3d,0x20,0x5f,0x31,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x31,0x31,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x38,0x20,0x3d, - 0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x32, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x31,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x31,0x38,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, - 0x32,0x36,0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20, - 0x3d,0x3d,0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x31,0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, - 0x32,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d, - 0x20,0x69,0x6e,0x2e,0x75,0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x28,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f, - 0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f, - 0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, - 0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x69,0x6e, - 0x2e,0x75,0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, - 0x35,0x2c,0x20,0x2d,0x31,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67, - 0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x75,0x76,0x20, - 0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x31,0x2e,0x35,0x2c,0x20, - 0x30,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68, - 0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x75,0x76,0x20,0x2b,0x20,0x28,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x75,0x76,0x20,0x2b,0x20,0x28, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29, + 0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29, + 0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c, + 0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73, + 0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x75, + 0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x2c, + 0x20,0x30,0x2e,0x30,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f, + 0x73,0x69,0x7a,0x65,0x29,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x62,0x6c,0x69, + 0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f, + 0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x72,0x2c,0x20,0x28,0x75,0x76,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x5f,0x73,0x69,0x7a,0x65,0x29,0x29,0x2e,0x78,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66, + 0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75, + 0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e, + 0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d, + 0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x62,0x6c,0x69,0x74,0x5f, + 0x61,0x74,0x6c,0x61,0x73,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26, + 0x20,0x5f,0x32,0x30,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29, + 0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c, + 0x6f,0x61,0x74,0x3e,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, + 0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x20,0x5b,0x5b,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73, + 0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d, + 0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x5f,0x39,0x38,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30, + 0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75, + 0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72, + 0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x21,0x5f,0x31,0x30,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x5f, + 0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31, + 0x31,0x20,0x3d,0x20,0x5f,0x31,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x31,0x31,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x38, + 0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d, + 0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32, + 0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x31,0x38, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x31,0x32,0x36,0x20,0x3d,0x20,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f, + 0x6e,0x20,0x3d,0x3d,0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x31,0x38, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x31,0x32,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x75,0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x28,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x35,0x29,0x20,0x2f, + 0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65, + 0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, + 0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20, + 0x69,0x6e,0x2e,0x75,0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, + 0x30,0x2e,0x35,0x2c,0x20,0x2d,0x31,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30, 0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69, 0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x39, - 0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66, - 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, - 0x2c,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x6f,0x76,0x65, - 0x72,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x28,0x28,0x64, - 0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x2c,0x20,0x5f,0x32,0x30,0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f, - 0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72, - 0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x29,0x20,0x2b,0x20,0x64,0x6f,0x77, - 0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x2c,0x20,0x5f,0x32,0x30,0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f, - 0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72, - 0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x29,0x29,0x20,0x2b,0x20,0x64,0x6f, - 0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x5f,0x32,0x30,0x2c,0x20,0x62,0x6c,0x69,0x74, - 0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73, - 0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x29,0x29,0x20,0x2b,0x20,0x64, - 0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x5f,0x32,0x30,0x2c,0x20,0x62,0x6c,0x69, + 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x39, + 0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x75, + 0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x31,0x2e,0x35, + 0x2c,0x20,0x30,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79, + 0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x39,0x38,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x75,0x76,0x20,0x2b,0x20, + 0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x20,0x2f,0x20,0x5f, + 0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f, + 0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20, + 0x5f,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, + 0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x31, + 0x2e,0x30,0x2c,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x5f,0x32,0x30,0x2e,0x6f, + 0x76,0x65,0x72,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x28, + 0x28,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x5f,0x32,0x30,0x2c,0x20,0x62,0x6c,0x69, 0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74, 0x75,0x72,0x65,0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, - 0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x29,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, - 0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30, - 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x00, + 0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x29,0x20,0x2b,0x20,0x64, + 0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x5f,0x32,0x30,0x2c,0x20,0x62,0x6c,0x69, + 0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, + 0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x29,0x29,0x20,0x2b,0x20, + 0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x5f,0x32,0x30,0x2c,0x20,0x62,0x6c, + 0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73, + 0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x29,0x29,0x20,0x2b, + 0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x5f,0x32,0x30,0x2c,0x20,0x62, + 0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61, + 0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x29,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f, + 0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c, + 0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x00, } /* diagnostic(off, derivative_uniformity); @@ -1149,11 +1149,8 @@ blit_atlas_fs_source_metal_macos := [2644]u8 { var gl_Position : vec4f; fn main_1() { - let x_16 : f32 = v_texture.x; - let x_20 : f32 = v_texture.y; - uv = vec2f(x_16, (1.0f - x_20)); - let x_31 : vec2f = v_position; - gl_Position = vec4f(x_31.x, x_31.y, 0.0f, 1.0f); + uv = vec2f(v_texture.x, (1.0f - v_texture.y)); + gl_Position = vec4f(v_position.x, v_position.y, 0.0f, 1.0f); return; } @@ -1171,10 +1168,9 @@ blit_atlas_fs_source_metal_macos := [2644]u8 { main_1(); return main_out(uv, gl_Position); } - */ @(private="file") -blit_atlas_vs_source_wgsl := [698]u8 { +blit_atlas_vs_source_wgsl := [626]u8 { 0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20, 0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f, 0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69, @@ -1186,39 +1182,35 @@ blit_atlas_vs_source_wgsl := [698]u8 { 0x63,0x32,0x66,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74, 0x65,0x3e,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a, 0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e, - 0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31, - 0x36,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x76,0x5f,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x32, - 0x30,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x76,0x5f,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x32,0x66,0x28,0x78,0x5f,0x31,0x36,0x2c,0x20,0x28,0x31,0x2e,0x30,0x66,0x20, - 0x2d,0x20,0x78,0x5f,0x32,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20, - 0x78,0x5f,0x33,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x76, - 0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x67,0x6c,0x5f, - 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66, - 0x28,0x78,0x5f,0x33,0x31,0x2e,0x78,0x2c,0x20,0x78,0x5f,0x33,0x31,0x2e,0x79,0x2c, - 0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63, - 0x74,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40, - 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x75,0x76, - 0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x2c,0x0a,0x20,0x20,0x40,0x62, - 0x75,0x69,0x6c,0x74,0x69,0x6e,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29, - 0x0a,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a, - 0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x76,0x65,0x72,0x74, - 0x65,0x78,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61, - 0x74,0x69,0x6f,0x6e,0x28,0x31,0x29,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x2c, - 0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x76,0x5f, - 0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a, - 0x20,0x76,0x65,0x63,0x32,0x66,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f, - 0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x20,0x3d,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x70,0x61, - 0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f, - 0x6e,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x70, - 0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29, - 0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f, - 0x6f,0x75,0x74,0x28,0x75,0x76,0x2c,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74, - 0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x32,0x66,0x28,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x78,0x2c, + 0x20,0x28,0x31,0x2e,0x30,0x66,0x20,0x2d,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x2e,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73, + 0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x76,0x5f, + 0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x2c,0x20,0x76,0x5f,0x70,0x6f, + 0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20, + 0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b, + 0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x5f, + 0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, + 0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x75,0x76,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65, + 0x63,0x32,0x66,0x2c,0x0a,0x20,0x20,0x40,0x62,0x75,0x69,0x6c,0x74,0x69,0x6e,0x28, + 0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x0a,0x20,0x20,0x67,0x6c,0x5f,0x50, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c, + 0x0a,0x7d,0x0a,0x0a,0x40,0x76,0x65,0x72,0x74,0x65,0x78,0x0a,0x66,0x6e,0x20,0x6d, + 0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x31,0x29, + 0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x70,0x61,0x72,0x61,0x6d, + 0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x2c,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74, + 0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x29, + 0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20, + 0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x20,0x3d,0x20,0x76,0x5f,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20, + 0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x5f,0x70, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20, + 0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x28,0x75,0x76,0x2c, + 0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x7d, + 0x0a,0x00, } /* diagnostic(off, derivative_uniformity); @@ -1232,11 +1224,11 @@ blit_atlas_vs_source_wgsl := [698]u8 { region : i32, } - @group(0) @binding(8) var x_20 : blit_atlas_fs_params; + @binding(8) @group(0) var x_20 : blit_atlas_fs_params; - @group(1) @binding(64) var blit_atlas_src_texture : texture_2d; + @binding(64) @group(1) var blit_atlas_src_texture : texture_2d; - @group(1) @binding(80) var blit_atlas_src_sampler : sampler; + @binding(80) @group(1) var blit_atlas_src_sampler : sampler; var uv_1 : vec2f; @@ -1245,26 +1237,24 @@ blit_atlas_vs_source_wgsl := [698]u8 { fn down_sample_to_texture_vf2_vf2_(uv : ptr, texture_size : ptr) -> f32 { var down_sample : f32; var value : f32; - let x_24 : f32 = x_20.over_sample; - down_sample = (1.0f / x_24); - let x_37 : vec2f = *(uv); - let x_40 : vec2f = *(texture_size); - let x_44 : vec4f = textureSample(blit_atlas_src_texture, blit_atlas_src_sampler, (x_37 + (vec2f(0.0f, 0.0f) * x_40))); - let x_48 : f32 = down_sample; - let x_53 : vec2f = *(uv); - let x_55 : vec2f = *(texture_size); - let x_58 : vec4f = textureSample(blit_atlas_src_texture, blit_atlas_src_sampler, (x_53 + (vec2f(0.0f, 1.0f) * x_55))); - let x_60 : f32 = down_sample; - let x_66 : vec2f = *(uv); - let x_68 : vec2f = *(texture_size); - let x_71 : vec4f = textureSample(blit_atlas_src_texture, blit_atlas_src_sampler, (x_66 + (vec2f(1.0f, 0.0f) * x_68))); - let x_73 : f32 = down_sample; - let x_79 : vec2f = *(uv); - let x_81 : vec2f = *(texture_size); - let x_84 : vec4f = textureSample(blit_atlas_src_texture, blit_atlas_src_sampler, (x_79 + (vec2f(1.0f, 1.0f) * x_81))); - let x_86 : f32 = down_sample; - value = ((((x_44.x * x_48) + (x_58.x * x_60)) + (x_71.x * x_73)) + (x_84.x * x_86)); - let x_89 : f32 = value; + down_sample = (1.0f / x_20.over_sample); + let x_37 = *(uv); + let x_40 = *(texture_size); + let x_44 = textureSample(blit_atlas_src_texture, blit_atlas_src_sampler, (x_37 + (vec2f() * x_40))); + let x_48 = down_sample; + let x_53 = *(uv); + let x_55 = *(texture_size); + let x_58 = textureSample(blit_atlas_src_texture, blit_atlas_src_sampler, (x_53 + (vec2f(0.0f, 1.0f) * x_55))); + let x_60 = down_sample; + let x_66 = *(uv); + let x_68 = *(texture_size); + let x_71 = textureSample(blit_atlas_src_texture, blit_atlas_src_sampler, (x_66 + (vec2f(1.0f, 0.0f) * x_68))); + let x_73 = down_sample; + let x_79 = *(uv); + let x_81 = *(texture_size); + let x_84 = textureSample(blit_atlas_src_texture, blit_atlas_src_sampler, (x_79 + (vec2f(1.0f) * x_81))); + value = ((((x_44.x * x_48) + (x_58.x * x_60)) + (x_71.x * x_73)) + (x_84.x * down_sample)); + let x_89 = value; return x_89; } @@ -1286,62 +1276,42 @@ blit_atlas_vs_source_wgsl := [698]u8 { var x_118 : bool; var x_125 : bool; var x_126 : bool; - let x_96 : vec2f = x_20.glyph_buffer_size; - texture_size_1 = (vec2f(1.0f, 1.0f) / x_96); - let x_103 : i32 = x_20.region; - let x_104 : bool = (x_103 == 0i); + texture_size_1 = (vec2f(1.0f) / x_20.glyph_buffer_size); + let x_104 = (x_20.region == 0i); x_111 = x_104; if (!(x_104)) { - let x_109 : i32 = x_20.region; - x_110 = (x_109 == 1i); + x_110 = (x_20.region == 1i); x_111 = x_110; } x_118 = x_111; if (!(x_111)) { - let x_116 : i32 = x_20.region; - x_117 = (x_116 == 2i); + x_117 = (x_20.region == 2i); x_118 = x_117; } x_126 = x_118; if (!(x_118)) { - let x_123 : i32 = x_20.region; - x_125 = (x_123 == 4i); + x_125 = (x_20.region == 4i); x_126 = x_125; } if (x_126) { - let x_131 : f32 = x_20.over_sample; - down_sample_1 = (1.0f / x_131); - let x_136 : vec2f = uv_1; - let x_140 : vec2f = texture_size_1; - param = (x_136 + (vec2f(-1.0f, -1.5f) * x_140)); - let x_145 : vec2f = texture_size_1; - param_1 = x_145; - let x_146 : f32 = down_sample_to_texture_vf2_vf2_(&(param), &(param_1)); - let x_147 : f32 = down_sample_1; - let x_149 : vec2f = uv_1; - let x_152 : vec2f = texture_size_1; - param_2 = (x_149 + (vec2f(0.5f, -1.5f) * x_152)); - let x_157 : vec2f = texture_size_1; - param_3 = x_157; - let x_158 : f32 = down_sample_to_texture_vf2_vf2_(&(param_2), &(param_3)); - let x_159 : f32 = down_sample_1; - let x_162 : vec2f = uv_1; - let x_164 : vec2f = texture_size_1; - param_4 = (x_162 + (vec2f(-1.5f, 0.5f) * x_164)); - let x_169 : vec2f = texture_size_1; - param_5 = x_169; - let x_170 : f32 = down_sample_to_texture_vf2_vf2_(&(param_4), &(param_5)); - let x_171 : f32 = down_sample_1; - let x_174 : vec2f = uv_1; - let x_176 : vec2f = texture_size_1; - param_6 = (x_174 + (vec2f(0.5f, 0.5f) * x_176)); - let x_181 : vec2f = texture_size_1; - param_7 = x_181; - let x_182 : f32 = down_sample_to_texture_vf2_vf2_(&(param_6), &(param_7)); - let x_183 : f32 = down_sample_1; - alpha = ((((x_146 * x_147) + (x_158 * x_159)) + (x_170 * x_171)) + (x_182 * x_183)); - let x_188 : f32 = alpha; - frag_color = vec4f(1.0f, 1.0f, 1.0f, x_188); + down_sample_1 = (1.0f / x_20.over_sample); + param = (uv_1 + (vec2f(-1.0f, -1.5f) * texture_size_1)); + param_1 = texture_size_1; + let x_146 = down_sample_to_texture_vf2_vf2_(&(param), &(param_1)); + let x_147 = down_sample_1; + param_2 = (uv_1 + (vec2f(0.5f, -1.5f) * texture_size_1)); + param_3 = texture_size_1; + let x_158 = down_sample_to_texture_vf2_vf2_(&(param_2), &(param_3)); + let x_159 = down_sample_1; + param_4 = (uv_1 + (vec2f(-1.5f, 0.5f) * texture_size_1)); + param_5 = texture_size_1; + let x_170 = down_sample_to_texture_vf2_vf2_(&(param_4), &(param_5)); + let x_171 = down_sample_1; + param_6 = (uv_1 + (vec2f(0.5f) * texture_size_1)); + param_7 = texture_size_1; + let x_182 = down_sample_to_texture_vf2_vf2_(&(param_6), &(param_7)); + alpha = ((((x_146 * x_147) + (x_158 * x_159)) + (x_170 * x_171)) + (x_182 * down_sample_1)); + frag_color = vec4f(1.0f, 1.0f, 1.0f, alpha); } else { frag_color = vec4f(0.0f, 0.0f, 0.0f, 1.0f); } @@ -1359,10 +1329,9 @@ blit_atlas_vs_source_wgsl := [698]u8 { main_1(); return main_out(frag_color); } - */ @(private="file") -blit_atlas_fs_source_wgsl := [4324]u8 { +blit_atlas_fs_source_wgsl := [3476]u8 { 0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20, 0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f, 0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, @@ -1375,17 +1344,17 @@ blit_atlas_fs_source_wgsl := [4324]u8 { 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x20,0x3a,0x20,0x66,0x33,0x32,0x2c,0x0a,0x20, 0x20,0x2f,0x2a,0x20,0x40,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x31,0x32,0x29,0x20, 0x2a,0x2f,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3a,0x20,0x69,0x33, - 0x32,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x30,0x29,0x20, - 0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x38,0x29,0x20,0x76,0x61,0x72,0x3c, + 0x32,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x38, + 0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x30,0x29,0x20,0x76,0x61,0x72,0x3c, 0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x3e,0x20,0x78,0x5f,0x32,0x30,0x20,0x3a,0x20, 0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x66,0x73,0x5f,0x70,0x61, - 0x72,0x61,0x6d,0x73,0x3b,0x0a,0x0a,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x31,0x29, - 0x20,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x36,0x34,0x29,0x20,0x76,0x61, + 0x72,0x61,0x6d,0x73,0x3b,0x0a,0x0a,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28, + 0x36,0x34,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x31,0x29,0x20,0x76,0x61, 0x72,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63, 0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x20,0x3a,0x20,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x5f,0x32,0x64,0x3c,0x66,0x33,0x32,0x3e,0x3b,0x0a,0x0a,0x40,0x67,0x72, - 0x6f,0x75,0x70,0x28,0x31,0x29,0x20,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28, - 0x38,0x30,0x29,0x20,0x76,0x61,0x72,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c, + 0x72,0x65,0x5f,0x32,0x64,0x3c,0x66,0x33,0x32,0x3e,0x3b,0x0a,0x0a,0x40,0x62,0x69, + 0x6e,0x64,0x69,0x6e,0x67,0x28,0x38,0x30,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70, + 0x28,0x31,0x29,0x20,0x76,0x61,0x72,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c, 0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x3a, 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70, 0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x75,0x76,0x5f,0x31,0x20,0x3a,0x20,0x76, @@ -1401,239 +1370,186 @@ blit_atlas_fs_source_wgsl := [4324]u8 { 0x33,0x32,0x20,0x7b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x6f,0x77,0x6e,0x5f, 0x73,0x61,0x6d,0x70,0x6c,0x65,0x20,0x3a,0x20,0x66,0x33,0x32,0x3b,0x0a,0x20,0x20, 0x76,0x61,0x72,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x66,0x33,0x32,0x3b, - 0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x32,0x34,0x20,0x3a,0x20,0x66,0x33, - 0x32,0x20,0x3d,0x20,0x78,0x5f,0x32,0x30,0x2e,0x6f,0x76,0x65,0x72,0x5f,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x20,0x3d,0x20,0x28,0x31,0x2e,0x30,0x66,0x20,0x2f,0x20,0x78,0x5f, - 0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x33,0x37,0x20, - 0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x2a,0x28,0x75,0x76,0x29,0x3b, - 0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x34,0x30,0x20,0x3a,0x20,0x76,0x65, - 0x63,0x32,0x66,0x20,0x3d,0x20,0x2a,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f, - 0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x34, - 0x34,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x20,0x3d,0x20,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61, - 0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63, - 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x78,0x5f,0x33,0x37,0x20, - 0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x30,0x2e,0x30,0x66,0x2c,0x20,0x30, - 0x2e,0x30,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x34,0x30,0x29,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x34,0x38,0x20,0x3a,0x20,0x66,0x33,0x32, - 0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x3b,0x0a, - 0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x35,0x33,0x20,0x3a,0x20,0x76,0x65,0x63, - 0x32,0x66,0x20,0x3d,0x20,0x2a,0x28,0x75,0x76,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65, - 0x74,0x20,0x78,0x5f,0x35,0x35,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d, - 0x20,0x2a,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29, - 0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x35,0x38,0x20,0x3a,0x20,0x76, - 0x65,0x63,0x34,0x66,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x61, - 0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, - 0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2c,0x20,0x62,0x6c,0x69, - 0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x72,0x2c,0x20,0x28,0x78,0x5f,0x35,0x33,0x20,0x2b,0x20,0x28,0x76,0x65, - 0x63,0x32,0x66,0x28,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x20, - 0x2a,0x20,0x78,0x5f,0x35,0x35,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74, - 0x20,0x78,0x5f,0x36,0x30,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x64,0x6f, - 0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74, - 0x20,0x78,0x5f,0x36,0x36,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20, - 0x2a,0x28,0x75,0x76,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x36, - 0x38,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x2a,0x28,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x6c, - 0x65,0x74,0x20,0x78,0x5f,0x37,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x20, - 0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28, - 0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74, - 0x65,0x78,0x74,0x75,0x72,0x65,0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c, - 0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20, - 0x28,0x78,0x5f,0x36,0x36,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x31, - 0x2e,0x30,0x66,0x2c,0x20,0x30,0x2e,0x30,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x36, - 0x38,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x37,0x33, - 0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x37,0x39, - 0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x2a,0x28,0x75,0x76,0x29, - 0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x38,0x31,0x20,0x3a,0x20,0x76, - 0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x2a,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f, - 0x38,0x34,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x20,0x3d,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f, - 0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72, - 0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x78,0x5f,0x37,0x39, - 0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x31,0x2e,0x30,0x66,0x2c,0x20, - 0x31,0x2e,0x30,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x38,0x31,0x29,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x38,0x36,0x20,0x3a,0x20,0x66,0x33, - 0x32,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x3b, - 0x0a,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x78, - 0x5f,0x34,0x34,0x2e,0x78,0x20,0x2a,0x20,0x78,0x5f,0x34,0x38,0x29,0x20,0x2b,0x20, - 0x28,0x78,0x5f,0x35,0x38,0x2e,0x78,0x20,0x2a,0x20,0x78,0x5f,0x36,0x30,0x29,0x29, - 0x20,0x2b,0x20,0x28,0x78,0x5f,0x37,0x31,0x2e,0x78,0x20,0x2a,0x20,0x78,0x5f,0x37, - 0x33,0x29,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x38,0x34,0x2e,0x78,0x20,0x2a,0x20, - 0x78,0x5f,0x38,0x36,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f, - 0x38,0x39,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65, - 0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x78,0x5f,0x38,0x39,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x20, - 0x7b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f, - 0x73,0x69,0x7a,0x65,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a, - 0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x5f,0x31,0x20,0x3a,0x20,0x66,0x33,0x32,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72, - 0x20,0x61,0x6c,0x70,0x68,0x61,0x20,0x3a,0x20,0x66,0x33,0x32,0x3b,0x0a,0x20,0x20, - 0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32, - 0x66,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x0a,0x20,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x20,0x3d, + 0x20,0x28,0x31,0x2e,0x30,0x66,0x20,0x2f,0x20,0x78,0x5f,0x32,0x30,0x2e,0x6f,0x76, + 0x65,0x72,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65, + 0x74,0x20,0x78,0x5f,0x33,0x37,0x20,0x3d,0x20,0x2a,0x28,0x75,0x76,0x29,0x3b,0x0a, + 0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x34,0x30,0x20,0x3d,0x20,0x2a,0x28,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20, + 0x6c,0x65,0x74,0x20,0x78,0x5f,0x34,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74, + 0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2c, + 0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x78,0x5f,0x33,0x37,0x20,0x2b, + 0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x29,0x20,0x2a,0x20,0x78,0x5f,0x34,0x30, + 0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x34,0x38,0x20, + 0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20, + 0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x35,0x33,0x20,0x3d,0x20,0x2a,0x28,0x75,0x76, + 0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x35,0x35,0x20,0x3d,0x20, + 0x2a,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b, + 0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x35,0x38,0x20,0x3d,0x20,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74, + 0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x2c,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73, + 0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x78,0x5f,0x35, + 0x33,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x30,0x2e,0x30,0x66,0x2c, + 0x20,0x31,0x2e,0x30,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x35,0x35,0x29,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x36,0x30,0x20,0x3d,0x20,0x64, + 0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65, + 0x74,0x20,0x78,0x5f,0x36,0x36,0x20,0x3d,0x20,0x2a,0x28,0x75,0x76,0x29,0x3b,0x0a, + 0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x36,0x38,0x20,0x3d,0x20,0x2a,0x28,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20, + 0x6c,0x65,0x74,0x20,0x78,0x5f,0x37,0x31,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74, + 0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2c, + 0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x78,0x5f,0x36,0x36,0x20,0x2b, + 0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x31,0x2e,0x30,0x66,0x2c,0x20,0x30,0x2e, + 0x30,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x36,0x38,0x29,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x37,0x33,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e, + 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78, + 0x5f,0x37,0x39,0x20,0x3d,0x20,0x2a,0x28,0x75,0x76,0x29,0x3b,0x0a,0x20,0x20,0x6c, + 0x65,0x74,0x20,0x78,0x5f,0x38,0x31,0x20,0x3d,0x20,0x2a,0x28,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74, + 0x20,0x78,0x5f,0x38,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53, + 0x61,0x6d,0x70,0x6c,0x65,0x28,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73, + 0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2c,0x20,0x62,0x6c, + 0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x78,0x5f,0x37,0x39,0x20,0x2b,0x20,0x28,0x76, + 0x65,0x63,0x32,0x66,0x28,0x31,0x2e,0x30,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x38, + 0x31,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20, + 0x28,0x28,0x28,0x28,0x78,0x5f,0x34,0x34,0x2e,0x78,0x20,0x2a,0x20,0x78,0x5f,0x34, + 0x38,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x35,0x38,0x2e,0x78,0x20,0x2a,0x20,0x78, + 0x5f,0x36,0x30,0x29,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x37,0x31,0x2e,0x78,0x20, + 0x2a,0x20,0x78,0x5f,0x37,0x33,0x29,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x38,0x34, + 0x2e,0x78,0x20,0x2a,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x38,0x39,0x20,0x3d, + 0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x78,0x5f,0x38,0x39,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69, + 0x6e,0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x20,0x3a,0x20,0x76, + 0x65,0x63,0x32,0x66,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x6f,0x77,0x6e, + 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x31,0x20,0x3a,0x20,0x66,0x33,0x32,0x3b, + 0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x6c,0x70,0x68,0x61,0x20,0x3a,0x20,0x66, + 0x33,0x32,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, + 0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a, + 0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3a,0x20, + 0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x33,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x20,0x20, + 0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3a,0x20,0x76,0x65, + 0x63,0x32,0x66,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x35,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x20,0x20,0x76,0x61, + 0x72,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3a,0x20,0x76,0x65,0x63,0x32, + 0x66,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37, 0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b, - 0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3a, - 0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x34,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x20, - 0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3a,0x20,0x76, - 0x65,0x63,0x32,0x66,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x36,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x3b,0x0a,0x20,0x20,0x76, - 0x61,0x72,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3a,0x20,0x76,0x65,0x63, - 0x32,0x66,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x78,0x5f,0x31,0x31,0x30,0x20, - 0x3a,0x20,0x62,0x6f,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x78,0x5f, - 0x31,0x31,0x31,0x20,0x3a,0x20,0x62,0x6f,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x76,0x61, - 0x72,0x20,0x78,0x5f,0x31,0x31,0x37,0x20,0x3a,0x20,0x62,0x6f,0x6f,0x6c,0x3b,0x0a, - 0x20,0x20,0x76,0x61,0x72,0x20,0x78,0x5f,0x31,0x31,0x38,0x20,0x3a,0x20,0x62,0x6f, - 0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x78,0x5f,0x31,0x32,0x35,0x20, - 0x3a,0x20,0x62,0x6f,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x78,0x5f, - 0x31,0x32,0x36,0x20,0x3a,0x20,0x62,0x6f,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x6c,0x65, - 0x74,0x20,0x78,0x5f,0x39,0x36,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d, - 0x20,0x78,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66, - 0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x20,0x3d,0x20,0x28,0x76,0x65,0x63, - 0x32,0x66,0x28,0x31,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x20,0x2f, - 0x20,0x78,0x5f,0x39,0x36,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f, - 0x31,0x30,0x33,0x20,0x3a,0x20,0x69,0x33,0x32,0x20,0x3d,0x20,0x78,0x5f,0x32,0x30, - 0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78, - 0x5f,0x31,0x30,0x34,0x20,0x3a,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x28,0x78, - 0x5f,0x31,0x30,0x33,0x20,0x3d,0x3d,0x20,0x30,0x69,0x29,0x3b,0x0a,0x20,0x20,0x78, - 0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x78,0x5f,0x31,0x30,0x34,0x3b,0x0a,0x20,0x20, - 0x69,0x66,0x20,0x28,0x21,0x28,0x78,0x5f,0x31,0x30,0x34,0x29,0x29,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x30,0x39,0x20,0x3a,0x20, - 0x69,0x33,0x32,0x20,0x3d,0x20,0x78,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f, - 0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x78,0x5f,0x31,0x31,0x30,0x20,0x3d,0x20,0x28, - 0x78,0x5f,0x31,0x30,0x39,0x20,0x3d,0x3d,0x20,0x31,0x69,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x78,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x78,0x5f,0x31,0x31,0x30,0x3b, - 0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x78,0x5f,0x31,0x31,0x38,0x20,0x3d,0x20,0x78, - 0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x78,0x5f, - 0x31,0x31,0x31,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20, - 0x78,0x5f,0x31,0x31,0x36,0x20,0x3a,0x20,0x69,0x33,0x32,0x20,0x3d,0x20,0x78,0x5f, - 0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x78, - 0x5f,0x31,0x31,0x37,0x20,0x3d,0x20,0x28,0x78,0x5f,0x31,0x31,0x36,0x20,0x3d,0x3d, - 0x20,0x32,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x78,0x5f,0x31,0x31,0x38,0x20, - 0x3d,0x20,0x78,0x5f,0x31,0x31,0x37,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x78, - 0x5f,0x31,0x32,0x36,0x20,0x3d,0x20,0x78,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20, - 0x69,0x66,0x20,0x28,0x21,0x28,0x78,0x5f,0x31,0x31,0x38,0x29,0x29,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x32,0x33,0x20,0x3a,0x20, - 0x69,0x33,0x32,0x20,0x3d,0x20,0x78,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f, - 0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x78,0x5f,0x31,0x32,0x35,0x20,0x3d,0x20,0x28, - 0x78,0x5f,0x31,0x32,0x33,0x20,0x3d,0x3d,0x20,0x34,0x69,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x78,0x5f,0x31,0x32,0x36,0x20,0x3d,0x20,0x78,0x5f,0x31,0x32,0x35,0x3b, - 0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x78,0x5f,0x31,0x32,0x36, - 0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x33, - 0x31,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x78,0x5f,0x32,0x30,0x2e,0x6f, - 0x76,0x65,0x72,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x31,0x20,0x3d,0x20, - 0x28,0x31,0x2e,0x30,0x66,0x20,0x2f,0x20,0x78,0x5f,0x31,0x33,0x31,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x33,0x36,0x20,0x3a,0x20, - 0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x75,0x76,0x5f,0x31,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x34,0x30,0x20,0x3a,0x20,0x76,0x65, - 0x63,0x32,0x66,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69, - 0x7a,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, - 0x3d,0x20,0x28,0x78,0x5f,0x31,0x33,0x36,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32, - 0x66,0x28,0x2d,0x31,0x2e,0x30,0x66,0x2c,0x20,0x2d,0x31,0x2e,0x35,0x66,0x29,0x20, - 0x2a,0x20,0x78,0x5f,0x31,0x34,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c, - 0x65,0x74,0x20,0x78,0x5f,0x31,0x34,0x35,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66, - 0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f, - 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, - 0x20,0x78,0x5f,0x31,0x34,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20, - 0x78,0x5f,0x31,0x34,0x36,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x64,0x6f, - 0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x5f,0x76,0x66,0x32,0x5f,0x76,0x66,0x32,0x5f,0x28,0x26,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x29,0x2c,0x20,0x26,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31, - 0x34,0x37,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65, - 0x74,0x20,0x78,0x5f,0x31,0x34,0x39,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20, - 0x3d,0x20,0x75,0x76,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20, - 0x78,0x5f,0x31,0x35,0x32,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x28,0x78, - 0x5f,0x31,0x34,0x39,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x30,0x2e, - 0x35,0x66,0x2c,0x20,0x2d,0x31,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x31, - 0x35,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f, - 0x31,0x35,0x37,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x78,0x5f,0x31,0x35, - 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x35,0x38, - 0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f, - 0x76,0x66,0x32,0x5f,0x76,0x66,0x32,0x5f,0x28,0x26,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x29,0x2c,0x20,0x26,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x35,0x39,0x20, - 0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78, - 0x5f,0x31,0x36,0x32,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x75, - 0x76,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31, - 0x36,0x34,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x28,0x78,0x5f,0x31,0x36, - 0x32,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x2d,0x31,0x2e,0x35,0x66, - 0x2c,0x20,0x30,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x31,0x36,0x34,0x29, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x36,0x39, - 0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x78,0x5f,0x31,0x36,0x39,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x37,0x30,0x20,0x3a,0x20, - 0x66,0x33,0x32,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x76,0x66,0x32, - 0x5f,0x76,0x66,0x32,0x5f,0x28,0x26,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29, - 0x2c,0x20,0x26,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x37,0x31,0x20,0x3a,0x20,0x66, - 0x33,0x32,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x37, - 0x34,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x75,0x76,0x5f,0x31, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x37,0x36,0x20, - 0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x28,0x78,0x5f,0x31,0x37,0x34,0x20,0x2b, - 0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x30,0x2e,0x35,0x66,0x2c,0x20,0x30,0x2e, - 0x35,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x31,0x37,0x36,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x38,0x31,0x20,0x3a,0x20,0x76, - 0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73, - 0x69,0x7a,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x37,0x20,0x3d,0x20,0x78,0x5f,0x31,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x38,0x32,0x20,0x3a,0x20,0x66,0x33,0x32,0x20, - 0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f, - 0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x76,0x66,0x32,0x5f,0x76,0x66,0x32, - 0x5f,0x28,0x26,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x26,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c, - 0x65,0x74,0x20,0x78,0x5f,0x31,0x38,0x33,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d, + 0x78,0x5f,0x31,0x31,0x30,0x20,0x3a,0x20,0x62,0x6f,0x6f,0x6c,0x3b,0x0a,0x20,0x20, + 0x76,0x61,0x72,0x20,0x78,0x5f,0x31,0x31,0x31,0x20,0x3a,0x20,0x62,0x6f,0x6f,0x6c, + 0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x78,0x5f,0x31,0x31,0x37,0x20,0x3a,0x20, + 0x62,0x6f,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x78,0x5f,0x31,0x31, + 0x38,0x20,0x3a,0x20,0x62,0x6f,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20, + 0x78,0x5f,0x31,0x32,0x35,0x20,0x3a,0x20,0x62,0x6f,0x6f,0x6c,0x3b,0x0a,0x20,0x20, + 0x76,0x61,0x72,0x20,0x78,0x5f,0x31,0x32,0x36,0x20,0x3a,0x20,0x62,0x6f,0x6f,0x6c, + 0x3b,0x0a,0x20,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65, + 0x5f,0x31,0x20,0x3d,0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x31,0x2e,0x30,0x66, + 0x29,0x20,0x2f,0x20,0x78,0x5f,0x32,0x30,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62, + 0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x3b,0x0a,0x20,0x20,0x6c, + 0x65,0x74,0x20,0x78,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x28,0x78,0x5f,0x32,0x30, + 0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x30,0x69,0x29,0x3b,0x0a, + 0x20,0x20,0x78,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20,0x78,0x5f,0x31,0x30,0x34,0x3b, + 0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x78,0x5f,0x31,0x30,0x34,0x29,0x29, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x78,0x5f,0x31,0x31,0x30,0x20,0x3d,0x20,0x28, + 0x78,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31, + 0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x78,0x5f,0x31,0x31,0x31,0x20,0x3d,0x20, + 0x78,0x5f,0x31,0x31,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x78,0x5f,0x31, + 0x31,0x38,0x20,0x3d,0x20,0x78,0x5f,0x31,0x31,0x31,0x3b,0x0a,0x20,0x20,0x69,0x66, + 0x20,0x28,0x21,0x28,0x78,0x5f,0x31,0x31,0x31,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x78,0x5f,0x31,0x31,0x37,0x20,0x3d,0x20,0x28,0x78,0x5f,0x32,0x30,0x2e, + 0x72,0x65,0x67,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x32,0x69,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x78,0x5f,0x31,0x31,0x38,0x20,0x3d,0x20,0x78,0x5f,0x31,0x31,0x37, + 0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x78,0x5f,0x31,0x32,0x36,0x20,0x3d,0x20, + 0x78,0x5f,0x31,0x31,0x38,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x78, + 0x5f,0x31,0x31,0x38,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x78,0x5f,0x31, + 0x32,0x35,0x20,0x3d,0x20,0x28,0x78,0x5f,0x32,0x30,0x2e,0x72,0x65,0x67,0x69,0x6f, + 0x6e,0x20,0x3d,0x3d,0x20,0x34,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x78,0x5f, + 0x31,0x32,0x36,0x20,0x3d,0x20,0x78,0x5f,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x78,0x5f,0x31,0x32,0x36,0x29,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, + 0x31,0x20,0x3d,0x20,0x28,0x31,0x2e,0x30,0x66,0x20,0x2f,0x20,0x78,0x5f,0x32,0x30, + 0x2e,0x6f,0x76,0x65,0x72,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x28,0x75,0x76,0x5f,0x31, + 0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x2d,0x31,0x2e,0x30,0x66,0x2c, + 0x20,0x2d,0x31,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65, + 0x74,0x20,0x78,0x5f,0x31,0x34,0x36,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x5f,0x76,0x66,0x32,0x5f,0x76,0x66,0x32,0x5f,0x28,0x26,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x29,0x2c,0x20,0x26,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x34,0x37,0x20,0x3d, 0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x31,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x61,0x6c,0x70,0x68,0x61,0x20,0x3d,0x20,0x28,0x28,0x28,0x28, - 0x78,0x5f,0x31,0x34,0x36,0x20,0x2a,0x20,0x78,0x5f,0x31,0x34,0x37,0x29,0x20,0x2b, - 0x20,0x28,0x78,0x5f,0x31,0x35,0x38,0x20,0x2a,0x20,0x78,0x5f,0x31,0x35,0x39,0x29, - 0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x31,0x37,0x30,0x20,0x2a,0x20,0x78,0x5f,0x31, - 0x37,0x31,0x29,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x31,0x38,0x32,0x20,0x2a,0x20, - 0x78,0x5f,0x31,0x38,0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74, - 0x20,0x78,0x5f,0x31,0x38,0x38,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x61, - 0x6c,0x70,0x68,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, - 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x31,0x2e,0x30, - 0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x2c,0x20,0x78, - 0x5f,0x31,0x38,0x38,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x30,0x2e,0x30,0x66,0x2c,0x20,0x30, - 0x2e,0x30,0x66,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29, - 0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f, - 0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e, - 0x28,0x30,0x29,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40, - 0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e, - 0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x75,0x76, - 0x5f,0x31,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66, - 0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a, - 0x20,0x20,0x75,0x76,0x5f,0x31,0x20,0x3d,0x20,0x75,0x76,0x5f,0x31,0x5f,0x70,0x61, - 0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x3b, - 0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f, - 0x75,0x74,0x28,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x00, + 0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x28,0x75, + 0x76,0x5f,0x31,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x30,0x2e,0x35, + 0x66,0x2c,0x20,0x2d,0x31,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x35,0x38,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e, + 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x5f,0x76,0x66,0x32,0x5f,0x76,0x66,0x32,0x5f,0x28,0x26,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x29,0x2c,0x20,0x26,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31, + 0x35,0x39,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20, + 0x3d,0x20,0x28,0x75,0x76,0x5f,0x31,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x66, + 0x28,0x2d,0x31,0x2e,0x35,0x66,0x2c,0x20,0x30,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x37,0x30,0x20,0x3d,0x20, + 0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x76,0x66,0x32,0x5f,0x76,0x66,0x32,0x5f,0x28, + 0x26,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20,0x26,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74, + 0x20,0x78,0x5f,0x31,0x37,0x31,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x36,0x20,0x3d,0x20,0x28,0x75,0x76,0x5f,0x31,0x20,0x2b,0x20,0x28,0x76, + 0x65,0x63,0x32,0x66,0x28,0x30,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x38,0x32,0x20,0x3d,0x20,0x64,0x6f,0x77, + 0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x74,0x6f,0x5f,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x76,0x66,0x32,0x5f,0x76,0x66,0x32,0x5f,0x28,0x26,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x26,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x37,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x70,0x68,0x61,0x20, + 0x3d,0x20,0x28,0x28,0x28,0x28,0x78,0x5f,0x31,0x34,0x36,0x20,0x2a,0x20,0x78,0x5f, + 0x31,0x34,0x37,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x31,0x35,0x38,0x20,0x2a,0x20, + 0x78,0x5f,0x31,0x35,0x39,0x29,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x31,0x37,0x30, + 0x20,0x2a,0x20,0x78,0x5f,0x31,0x37,0x31,0x29,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f, + 0x31,0x38,0x32,0x20,0x2a,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x31,0x2e, + 0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x2c,0x20, + 0x61,0x6c,0x70,0x68,0x61,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x30,0x2e,0x30,0x66,0x2c,0x20, + 0x30,0x2e,0x30,0x66,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66, + 0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b, + 0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x5f, + 0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, + 0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a, + 0x40,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69, + 0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x75, + 0x76,0x5f,0x31,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32, + 0x66,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b, + 0x0a,0x20,0x20,0x75,0x76,0x5f,0x31,0x20,0x3d,0x20,0x75,0x76,0x5f,0x31,0x5f,0x70, + 0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29, + 0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f, + 0x6f,0x75,0x74,0x28,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b, + 0x0a,0x7d,0x0a,0x00, } blit_atlas_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc { desc: sg.Shader_Desc diff --git a/backend/sokol/draw_text.odin b/backend/sokol/draw_text.odin index 79e36b6..4ae3676 100644 --- a/backend/sokol/draw_text.odin +++ b/backend/sokol/draw_text.odin @@ -87,12 +87,12 @@ draw_text_vs_source_glsl410 := [255]u8 { void main() { - frag_color = vec4(draw_text_fs_params[1].xyz, draw_text_fs_params[1].w * ((1.0 / draw_text_fs_params[0].z) * (((texture(draw_text_src_texture_draw_text_src_sampler, fma(vec2(-0.5), draw_text_fs_params[0].xy, uv)).x + texture(draw_text_src_texture_draw_text_src_sampler, fma(vec2(-0.5, 0.5), draw_text_fs_params[0].xy, uv)).x) + texture(draw_text_src_texture_draw_text_src_sampler, fma(vec2(0.5, -0.5), draw_text_fs_params[0].xy, uv)).x) + texture(draw_text_src_texture_draw_text_src_sampler, fma(vec2(0.5), draw_text_fs_params[0].xy, uv)).x))); + frag_color = vec4(draw_text_fs_params[1].xyz, draw_text_fs_params[1].w * ((1.0 / draw_text_fs_params[0].z) * (((texture(draw_text_src_texture_draw_text_src_sampler, uv + (vec2(-0.5) * draw_text_fs_params[0].xy)).x + texture(draw_text_src_texture_draw_text_src_sampler, uv + (vec2(-0.5, 0.5) * draw_text_fs_params[0].xy)).x) + texture(draw_text_src_texture_draw_text_src_sampler, uv + (vec2(0.5, -0.5) * draw_text_fs_params[0].xy)).x) + texture(draw_text_src_texture_draw_text_src_sampler, uv + (vec2(0.5) * draw_text_fs_params[0].xy)).x))); } */ @(private="file") -draw_text_fs_source_glsl410 := [758]u8 { +draw_text_fs_source_glsl410 := [754]u8 { 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x75,0x6e, 0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x64,0x72,0x61,0x77,0x5f, 0x74,0x65,0x78,0x74,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x32, @@ -116,31 +116,31 @@ draw_text_fs_source_glsl410 := [758]u8 { 0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65, 0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x64, 0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x72,0x2c,0x20,0x66,0x6d,0x61,0x28,0x76,0x65,0x63,0x32,0x28,0x2d, - 0x30,0x2e,0x35,0x29,0x2c,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f, - 0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x2c, - 0x20,0x75,0x76,0x29,0x29,0x2e,0x78,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78, - 0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x66, - 0x6d,0x61,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x30,0x2e,0x35,0x2c,0x20,0x30,0x2e, - 0x35,0x29,0x2c,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x66,0x73, - 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x2c,0x20,0x75, - 0x76,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32, + 0x28,0x2d,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65, + 0x78,0x74,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e, + 0x78,0x79,0x29,0x29,0x2e,0x78,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, 0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74, 0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74, - 0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x66,0x6d, - 0x61,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x35, - 0x29,0x2c,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x66,0x73,0x5f, - 0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x2c,0x20,0x75,0x76, - 0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, - 0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x5f,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f, - 0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x66,0x6d,0x61, - 0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20,0x64,0x72,0x61,0x77, + 0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76, + 0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x30,0x2e,0x35,0x2c,0x20,0x30, + 0x2e,0x35,0x29,0x20,0x2a,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f, + 0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x29, + 0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x64, + 0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x5f,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73, + 0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x20,0x2b, + 0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x35, + 0x29,0x20,0x2a,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x66,0x73, + 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x29,0x29,0x2e, + 0x78,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x64,0x72,0x61, + 0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x5f,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63, + 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x20,0x2b,0x20,0x28, + 0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x64,0x72,0x61,0x77, 0x5f,0x74,0x65,0x78,0x74,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b, - 0x30,0x5d,0x2e,0x78,0x79,0x2c,0x20,0x75,0x76,0x29,0x29,0x2e,0x78,0x29,0x29,0x29, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x30,0x5d,0x2e,0x78,0x79,0x29,0x29,0x2e,0x78,0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x00, } /* #version 300 es @@ -187,12 +187,12 @@ draw_text_vs_source_glsl300es := [237]u8 { void main() { - frag_color = vec4(draw_text_fs_params[1].xyz, draw_text_fs_params[1].w * ((1.0 / draw_text_fs_params[0].z) * (((texture(draw_text_src_texture_draw_text_src_sampler, vec2(-0.5) * draw_text_fs_params[0].xy + uv).x + texture(draw_text_src_texture_draw_text_src_sampler, vec2(-0.5, 0.5) * draw_text_fs_params[0].xy + uv).x) + texture(draw_text_src_texture_draw_text_src_sampler, vec2(0.5, -0.5) * draw_text_fs_params[0].xy + uv).x) + texture(draw_text_src_texture_draw_text_src_sampler, vec2(0.5) * draw_text_fs_params[0].xy + uv).x))); + frag_color = vec4(draw_text_fs_params[1].xyz, draw_text_fs_params[1].w * ((1.0 / draw_text_fs_params[0].z) * (((texture(draw_text_src_texture_draw_text_src_sampler, uv + (vec2(-0.5) * draw_text_fs_params[0].xy)).x + texture(draw_text_src_texture_draw_text_src_sampler, uv + (vec2(-0.5, 0.5) * draw_text_fs_params[0].xy)).x) + texture(draw_text_src_texture_draw_text_src_sampler, uv + (vec2(0.5, -0.5) * draw_text_fs_params[0].xy)).x) + texture(draw_text_src_texture_draw_text_src_sampler, uv + (vec2(0.5) * draw_text_fs_params[0].xy)).x))); } */ @(private="file") -draw_text_fs_source_glsl300es := [798]u8 { +draw_text_fs_source_glsl300es := [806]u8 { 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d, 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x70,0x72,0x65,0x63,0x69,0x73,0x69, @@ -219,30 +219,31 @@ draw_text_fs_source_glsl300es := [798]u8 { 0x2a,0x20,0x28,0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x64,0x72,0x61, 0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75, 0x72,0x65,0x5f,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63, - 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x2d, - 0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74, - 0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79, - 0x20,0x2b,0x20,0x75,0x76,0x29,0x2e,0x78,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75, + 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x20,0x2b,0x20,0x28, + 0x76,0x65,0x63,0x32,0x28,0x2d,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x64,0x72,0x61, + 0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, + 0x5b,0x30,0x5d,0x2e,0x78,0x79,0x29,0x29,0x2e,0x78,0x20,0x2b,0x20,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73, + 0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x64,0x72,0x61,0x77,0x5f, + 0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72, + 0x2c,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x30,0x2e, + 0x35,0x2c,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x64,0x72,0x61,0x77,0x5f,0x74, + 0x65,0x78,0x74,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d, + 0x2e,0x78,0x79,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75, 0x72,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63, 0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x64,0x72,0x61,0x77,0x5f,0x74,0x65, 0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20, - 0x76,0x65,0x63,0x32,0x28,0x2d,0x30,0x2e,0x35,0x2c,0x20,0x30,0x2e,0x35,0x29,0x20, - 0x2a,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x66,0x73,0x5f,0x70, - 0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x20,0x2b,0x20,0x75,0x76, - 0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x64, - 0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x5f,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73, - 0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x32, - 0x28,0x30,0x2e,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x64,0x72, - 0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, - 0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x20,0x2b,0x20,0x75,0x76,0x29,0x2e,0x78,0x29, - 0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x64,0x72,0x61,0x77,0x5f, - 0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x5f,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35, - 0x29,0x20,0x2a,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x66,0x73, - 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x20,0x2b,0x20, - 0x75,0x76,0x29,0x2e,0x78,0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x75,0x76,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x2c,0x20, + 0x2d,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78, + 0x74,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78, + 0x79,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74, + 0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76, + 0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20, + 0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72, + 0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x29,0x29,0x2e,0x78,0x29,0x29,0x29, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x00, } /* static float4 gl_Position; @@ -354,7 +355,7 @@ draw_text_vs_source_hlsl4 := [724]u8 { void frag_main() { - frag_color = float4(_32_colour.xyz, _32_colour.w * ((1.0f / _32_over_sample) * (((draw_text_src_texture.Sample(draw_text_src_sampler, mad((-0.5f).xx, _32_glyph_buffer_size, uv)).x + draw_text_src_texture.Sample(draw_text_src_sampler, mad(float2(-0.5f, 0.5f), _32_glyph_buffer_size, uv)).x) + draw_text_src_texture.Sample(draw_text_src_sampler, mad(float2(0.5f, -0.5f), _32_glyph_buffer_size, uv)).x) + draw_text_src_texture.Sample(draw_text_src_sampler, mad(0.5f.xx, _32_glyph_buffer_size, uv)).x))); + frag_color = float4(_32_colour.xyz, _32_colour.w * ((1.0f / _32_over_sample) * (((draw_text_src_texture.Sample(draw_text_src_sampler, uv + ((-0.5f).xx * _32_glyph_buffer_size)).x + draw_text_src_texture.Sample(draw_text_src_sampler, uv + (float2(-0.5f, 0.5f) * _32_glyph_buffer_size)).x) + draw_text_src_texture.Sample(draw_text_src_sampler, uv + (float2(0.5f, -0.5f) * _32_glyph_buffer_size)).x) + draw_text_src_texture.Sample(draw_text_src_sampler, uv + (0.5f.xx * _32_glyph_buffer_size)).x))); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) @@ -367,7 +368,7 @@ draw_text_vs_source_hlsl4 := [724]u8 { } */ @(private="file") -draw_text_fs_source_hlsl4 := [1198]u8 { +draw_text_fs_source_hlsl4 := [1194]u8 { 0x63,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78, 0x74,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3a,0x20,0x72,0x65, 0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x62,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, @@ -406,43 +407,43 @@ draw_text_fs_source_hlsl4 := [1198]u8 { 0x70,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x28,0x28,0x64,0x72,0x61,0x77,0x5f,0x74, 0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e, 0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74, - 0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x6d,0x61, - 0x64,0x28,0x28,0x2d,0x30,0x2e,0x35,0x66,0x29,0x2e,0x78,0x78,0x2c,0x20,0x5f,0x33, - 0x32,0x5f,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73, - 0x69,0x7a,0x65,0x2c,0x20,0x75,0x76,0x29,0x29,0x2e,0x78,0x20,0x2b,0x20,0x64,0x72, - 0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f, - 0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72, - 0x2c,0x20,0x6d,0x61,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x30,0x2e, - 0x35,0x66,0x2c,0x20,0x30,0x2e,0x35,0x66,0x29,0x2c,0x20,0x5f,0x33,0x32,0x5f,0x67, - 0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65, - 0x2c,0x20,0x75,0x76,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x64,0x72,0x61,0x77, - 0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65, - 0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20, - 0x6d,0x61,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x66,0x2c, - 0x20,0x2d,0x30,0x2e,0x35,0x66,0x29,0x2c,0x20,0x5f,0x33,0x32,0x5f,0x67,0x6c,0x79, - 0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20, - 0x75,0x76,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x64,0x72,0x61,0x77,0x5f,0x74, + 0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76, + 0x20,0x2b,0x20,0x28,0x28,0x2d,0x30,0x2e,0x35,0x66,0x29,0x2e,0x78,0x78,0x20,0x2a, + 0x20,0x5f,0x33,0x32,0x5f,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65, + 0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x29,0x2e,0x78,0x20,0x2b,0x20,0x64,0x72,0x61, + 0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74, + 0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c, + 0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x30, + 0x2e,0x35,0x66,0x2c,0x20,0x30,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32, + 0x5f,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69, + 0x7a,0x65,0x29,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x64,0x72,0x61,0x77,0x5f,0x74, 0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e, 0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74, - 0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x6d,0x61, - 0x64,0x28,0x30,0x2e,0x35,0x66,0x2e,0x78,0x78,0x2c,0x20,0x5f,0x33,0x32,0x5f,0x67, + 0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76, + 0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x66,0x2c, + 0x20,0x2d,0x30,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32,0x5f,0x67,0x6c, + 0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29, + 0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74, + 0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x53,0x61,0x6d, + 0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72, + 0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x20,0x2b,0x20, + 0x28,0x30,0x2e,0x35,0x66,0x2e,0x78,0x78,0x20,0x2a,0x20,0x5f,0x33,0x32,0x5f,0x67, 0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65, - 0x2c,0x20,0x75,0x76,0x29,0x29,0x2e,0x78,0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70, - 0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72, - 0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, - 0x69,0x6e,0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x75,0x76,0x20, - 0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x75,0x76, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f, - 0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, - 0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67, - 0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61, - 0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x00, + 0x29,0x29,0x2e,0x78,0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x53,0x50,0x49,0x52, + 0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x6d, + 0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f, + 0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75, + 0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x73,0x74, + 0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x75,0x76,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f, + 0x75,0x74,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70, + 0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75, + 0x74,0x70,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20, + 0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f, + 0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x00, } /* #include @@ -531,13 +532,13 @@ draw_text_vs_source_metal_macos := [495]u8 { fragment main0_out main0(main0_in in [[stage_in]], constant draw_text_fs_params& _32 [[buffer(0)]], texture2d draw_text_src_texture [[texture(0)]], sampler draw_text_src_sampler [[sampler(0)]]) { main0_out out = {}; - out.frag_color = float4(_32.colour.xyz, _32.colour.w * ((1.0 / _32.over_sample) * (((draw_text_src_texture.sample(draw_text_src_sampler, fma(float2(-0.5), _32.glyph_buffer_size, in.uv)).x + draw_text_src_texture.sample(draw_text_src_sampler, fma(float2(-0.5, 0.5), _32.glyph_buffer_size, in.uv)).x) + draw_text_src_texture.sample(draw_text_src_sampler, fma(float2(0.5, -0.5), _32.glyph_buffer_size, in.uv)).x) + draw_text_src_texture.sample(draw_text_src_sampler, fma(float2(0.5), _32.glyph_buffer_size, in.uv)).x))); + out.frag_color = float4(_32.colour.xyz, _32.colour.w * ((1.0 / _32.over_sample) * (((draw_text_src_texture.sample(draw_text_src_sampler, (in.uv + (float2(-0.5) * _32.glyph_buffer_size))).x + draw_text_src_texture.sample(draw_text_src_sampler, (in.uv + (float2(-0.5, 0.5) * _32.glyph_buffer_size))).x) + draw_text_src_texture.sample(draw_text_src_sampler, (in.uv + (float2(0.5, -0.5) * _32.glyph_buffer_size))).x) + draw_text_src_texture.sample(draw_text_src_sampler, (in.uv + (float2(0.5) * _32.glyph_buffer_size))).x))); return out; } */ @(private="file") -draw_text_fs_source_metal_macos := [1058]u8 { +draw_text_fs_source_metal_macos := [1062]u8 { 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, @@ -579,32 +580,32 @@ draw_text_fs_source_metal_macos := [1058]u8 { 0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75, 0x72,0x65,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74, 0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c, - 0x20,0x66,0x6d,0x61,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x30,0x2e,0x35, - 0x29,0x2c,0x20,0x5f,0x33,0x32,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66, - 0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x69,0x6e,0x2e,0x75,0x76,0x29, - 0x29,0x2e,0x78,0x20,0x2b,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f, - 0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63, - 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x66,0x6d,0x61,0x28,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x28,0x2d,0x30,0x2e,0x35,0x2c,0x20,0x30,0x2e,0x35,0x29,0x2c, - 0x20,0x5f,0x33,0x32,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65, - 0x72,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x69,0x6e,0x2e,0x75,0x76,0x29,0x29,0x2e, - 0x78,0x29,0x20,0x2b,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73, - 0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x66,0x6d,0x61,0x28,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x2c,0x20,0x2d,0x30,0x2e,0x35,0x29,0x2c,0x20, - 0x5f,0x33,0x32,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72, - 0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x69,0x6e,0x2e,0x75,0x76,0x29,0x29,0x2e,0x78, - 0x29,0x20,0x2b,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72, - 0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x66,0x6d,0x61,0x28,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20,0x5f,0x33,0x32,0x2e,0x67,0x6c,0x79, - 0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20, - 0x69,0x6e,0x2e,0x75,0x76,0x29,0x29,0x2e,0x78,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x00, + 0x20,0x28,0x69,0x6e,0x2e,0x75,0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x28,0x2d,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32,0x2e,0x67,0x6c, + 0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29, + 0x29,0x29,0x2e,0x78,0x20,0x2b,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74, + 0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72, + 0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x69,0x6e,0x2e,0x75, + 0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x30,0x2e,0x35, + 0x2c,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32,0x2e,0x67,0x6c,0x79, + 0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x29, + 0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74, + 0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72, + 0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x69,0x6e,0x2e,0x75, + 0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x2c, + 0x20,0x2d,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32,0x2e,0x67,0x6c,0x79, + 0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x29, + 0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74, + 0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72, + 0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x69,0x6e,0x2e,0x75, + 0x76,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29, + 0x20,0x2a,0x20,0x5f,0x33,0x32,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66, + 0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x29,0x29,0x29,0x2e,0x78,0x29,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x00, } /* diagnostic(off, derivative_uniformity); @@ -618,11 +619,8 @@ draw_text_fs_source_metal_macos := [1058]u8 { var gl_Position : vec4f; fn main_1() { - let x_16 : f32 = v_texture.x; - let x_20 : f32 = v_texture.y; - uv = vec2f(x_16, (1.0f - x_20)); - let x_31 : vec2f = v_position; - let x_35 : vec2f = ((x_31 * 2.0f) - vec2f(1.0f, 1.0f)); + uv = vec2f(v_texture.x, (1.0f - v_texture.y)); + let x_35 = ((v_position * 2.0f) - vec2f(1.0f)); gl_Position = vec4f(x_35.x, x_35.y, 0.0f, 1.0f); return; } @@ -641,10 +639,9 @@ draw_text_fs_source_metal_macos := [1058]u8 { main_1(); return main_out(uv, gl_Position); } - */ @(private="file") -draw_text_vs_source_wgsl := [756]u8 { +draw_text_vs_source_wgsl := [664]u8 { 0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20, 0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f, 0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69, @@ -656,43 +653,37 @@ draw_text_vs_source_wgsl := [756]u8 { 0x63,0x32,0x66,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74, 0x65,0x3e,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a, 0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e, - 0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31, - 0x36,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x76,0x5f,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x32, - 0x30,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x76,0x5f,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x32,0x66,0x28,0x78,0x5f,0x31,0x36,0x2c,0x20,0x28,0x31,0x2e,0x30,0x66,0x20, - 0x2d,0x20,0x78,0x5f,0x32,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20, - 0x78,0x5f,0x33,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x76, - 0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74, - 0x20,0x78,0x5f,0x33,0x35,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20, - 0x28,0x28,0x78,0x5f,0x33,0x31,0x20,0x2a,0x20,0x32,0x2e,0x30,0x66,0x29,0x20,0x2d, - 0x20,0x76,0x65,0x63,0x32,0x66,0x28,0x31,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30, - 0x66,0x29,0x29,0x3b,0x0a,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69, - 0x6f,0x6e,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x78,0x5f,0x33,0x35,0x2e, - 0x78,0x2c,0x20,0x78,0x5f,0x33,0x35,0x2e,0x79,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c, - 0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e, - 0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69, - 0x6f,0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x75,0x76,0x5f,0x31,0x20,0x3a,0x20,0x76, - 0x65,0x63,0x32,0x66,0x2c,0x0a,0x20,0x20,0x40,0x62,0x75,0x69,0x6c,0x74,0x69,0x6e, - 0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x0a,0x20,0x20,0x67,0x6c,0x5f, - 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66, - 0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x76,0x65,0x72,0x74,0x65,0x78,0x0a,0x66,0x6e,0x20, - 0x6d,0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x31, - 0x29,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x70,0x61,0x72,0x61, - 0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x2c,0x20,0x40,0x6c,0x6f,0x63,0x61, - 0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69, - 0x6f,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66, - 0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a, - 0x20,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x20,0x3d,0x20,0x76,0x5f, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20, - 0x20,0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x5f, - 0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a, - 0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x28,0x75,0x76, - 0x2c,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x00, + 0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x32,0x66,0x28,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x78,0x2c, + 0x20,0x28,0x31,0x2e,0x30,0x66,0x20,0x2d,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x2e,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f, + 0x33,0x35,0x20,0x3d,0x20,0x28,0x28,0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x20,0x2a,0x20,0x32,0x2e,0x30,0x66,0x29,0x20,0x2d,0x20,0x76,0x65,0x63,0x32, + 0x66,0x28,0x31,0x2e,0x30,0x66,0x29,0x29,0x3b,0x0a,0x20,0x20,0x67,0x6c,0x5f,0x50, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28, + 0x78,0x5f,0x33,0x35,0x2e,0x78,0x2c,0x20,0x78,0x5f,0x33,0x35,0x2e,0x79,0x2c,0x20, + 0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74, + 0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x6c, + 0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x75,0x76,0x5f, + 0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x2c,0x0a,0x20,0x20,0x40,0x62,0x75, + 0x69,0x6c,0x74,0x69,0x6e,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x0a, + 0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a,0x20, + 0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x76,0x65,0x72,0x74,0x65, + 0x78,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74, + 0x69,0x6f,0x6e,0x28,0x31,0x29,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x2c,0x20, + 0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x76,0x5f,0x70, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20, + 0x76,0x65,0x63,0x32,0x66,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f, + 0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x20,0x3d,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x70,0x61,0x72, + 0x61,0x6d,0x3b,0x0a,0x20,0x20,0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, + 0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x70,0x61, + 0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x3b, + 0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f, + 0x75,0x74,0x28,0x75,0x76,0x2c,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69, + 0x6f,0x6e,0x29,0x3b,0x0a,0x7d,0x0a,0x00, } /* diagnostic(off, derivative_uniformity); @@ -706,13 +697,13 @@ draw_text_vs_source_wgsl := [756]u8 { colour : vec4f, } - @group(1) @binding(64) var draw_text_src_texture : texture_2d; + @binding(64) @group(1) var draw_text_src_texture : texture_2d; - @group(1) @binding(80) var draw_text_src_sampler : sampler; + @binding(80) @group(1) var draw_text_src_sampler : sampler; var uv : vec2f; - @group(0) @binding(8) var x_32 : draw_text_fs_params; + @binding(8) @group(0) var x_32 : draw_text_fs_params; var frag_color : vec4f; @@ -720,35 +711,29 @@ draw_text_vs_source_wgsl := [756]u8 { var alpha : f32; var texture_size : vec2f; var down_sample : f32; - let x_22 : vec2f = uv; - let x_24 : vec4f = textureSample(draw_text_src_texture, draw_text_src_sampler, x_22); + let x_22 = uv; + let x_24 = textureSample(draw_text_src_texture, draw_text_src_sampler, x_22); alpha = x_24.x; - let x_37 : vec2f = x_32.glyph_buffer_size; - texture_size = x_37; - let x_43 : f32 = x_32.over_sample; - down_sample = (1.0f / x_43); - let x_48 : vec2f = uv; - let x_51 : vec2f = texture_size; - let x_54 : vec4f = textureSample(draw_text_src_texture, draw_text_src_sampler, (x_48 + (vec2f(-0.5f, -0.5f) * x_51))); - let x_56 : f32 = down_sample; - let x_61 : vec2f = uv; - let x_64 : vec2f = texture_size; - let x_67 : vec4f = textureSample(draw_text_src_texture, draw_text_src_sampler, (x_61 + (vec2f(-0.5f, 0.5f) * x_64))); - let x_69 : f32 = down_sample; - let x_75 : vec2f = uv; - let x_77 : vec2f = texture_size; - let x_80 : vec4f = textureSample(draw_text_src_texture, draw_text_src_sampler, (x_75 + (vec2f(0.5f, -0.5f) * x_77))); - let x_82 : f32 = down_sample; - let x_88 : vec2f = uv; - let x_90 : vec2f = texture_size; - let x_93 : vec4f = textureSample(draw_text_src_texture, draw_text_src_sampler, (x_88 + (vec2f(0.5f, 0.5f) * x_90))); - let x_95 : f32 = down_sample; - alpha = ((((x_54.x * x_56) + (x_67.x * x_69)) + (x_80.x * x_82)) + (x_93.x * x_95)); - let x_104 : vec4f = x_32.colour; - let x_105 : vec3f = vec3f(x_104.x, x_104.y, x_104.z); - let x_108 : f32 = x_32.colour.w; - let x_109 : f32 = alpha; - frag_color = vec4f(x_105.x, x_105.y, x_105.z, (x_108 * x_109)); + texture_size = x_32.glyph_buffer_size; + down_sample = (1.0f / x_32.over_sample); + let x_48 = uv; + let x_51 = texture_size; + let x_54 = textureSample(draw_text_src_texture, draw_text_src_sampler, (x_48 + (vec2f(-0.5f) * x_51))); + let x_56 = down_sample; + let x_61 = uv; + let x_64 = texture_size; + let x_67 = textureSample(draw_text_src_texture, draw_text_src_sampler, (x_61 + (vec2f(-0.5f, 0.5f) * x_64))); + let x_69 = down_sample; + let x_75 = uv; + let x_77 = texture_size; + let x_80 = textureSample(draw_text_src_texture, draw_text_src_sampler, (x_75 + (vec2f(0.5f, -0.5f) * x_77))); + let x_82 = down_sample; + let x_88 = uv; + let x_90 = texture_size; + let x_93 = textureSample(draw_text_src_texture, draw_text_src_sampler, (x_88 + (vec2f(0.5f) * x_90))); + alpha = ((((x_54.x * x_56) + (x_67.x * x_69)) + (x_80.x * x_82)) + (x_93.x * down_sample)); + let x_105 = x_32.colour.xyz; + frag_color = vec4f(x_105.x, x_105.y, x_105.z, (x_32.colour.w * alpha)); return; } @@ -763,10 +748,9 @@ draw_text_vs_source_wgsl := [756]u8 { main_1(); return main_out(frag_color); } - */ @(private="file") -draw_text_fs_source_wgsl := [2160]u8 { +draw_text_fs_source_wgsl := [1825]u8 { 0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20, 0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f, 0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, @@ -779,18 +763,18 @@ draw_text_fs_source_wgsl := [2160]u8 { 0x73,0x61,0x6d,0x70,0x6c,0x65,0x20,0x3a,0x20,0x66,0x33,0x32,0x2c,0x0a,0x20,0x20, 0x2f,0x2a,0x20,0x40,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x31,0x36,0x29,0x20,0x2a, 0x2f,0x0a,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x75,0x72,0x20,0x3a,0x20,0x76,0x65,0x63, - 0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x31,0x29, - 0x20,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x36,0x34,0x29,0x20,0x76,0x61, + 0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28, + 0x36,0x34,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x31,0x29,0x20,0x76,0x61, 0x72,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f, 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x20,0x3a,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x5f,0x32,0x64,0x3c,0x66,0x33,0x32,0x3e,0x3b,0x0a,0x0a,0x40,0x67,0x72,0x6f, - 0x75,0x70,0x28,0x31,0x29,0x20,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x38, - 0x30,0x29,0x20,0x76,0x61,0x72,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74, + 0x65,0x5f,0x32,0x64,0x3c,0x66,0x33,0x32,0x3e,0x3b,0x0a,0x0a,0x40,0x62,0x69,0x6e, + 0x64,0x69,0x6e,0x67,0x28,0x38,0x30,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70,0x28, + 0x31,0x29,0x20,0x76,0x61,0x72,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74, 0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x3a,0x20,0x73, 0x61,0x6d,0x70,0x6c,0x65,0x72,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69, 0x76,0x61,0x74,0x65,0x3e,0x20,0x75,0x76,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66, - 0x3b,0x0a,0x0a,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x30,0x29,0x20,0x40,0x62,0x69, - 0x6e,0x64,0x69,0x6e,0x67,0x28,0x38,0x29,0x20,0x76,0x61,0x72,0x3c,0x75,0x6e,0x69, + 0x3b,0x0a,0x0a,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x38,0x29,0x20,0x40, + 0x67,0x72,0x6f,0x75,0x70,0x28,0x30,0x29,0x20,0x76,0x61,0x72,0x3c,0x75,0x6e,0x69, 0x66,0x6f,0x72,0x6d,0x3e,0x20,0x78,0x5f,0x33,0x32,0x20,0x3a,0x20,0x64,0x72,0x61, 0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, 0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20, @@ -801,108 +785,87 @@ draw_text_fs_source_wgsl := [2160]u8 { 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66, 0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d, 0x70,0x6c,0x65,0x20,0x3a,0x20,0x66,0x33,0x32,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74, - 0x20,0x78,0x5f,0x32,0x32,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20, - 0x75,0x76,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x32,0x34,0x20,0x3a, - 0x20,0x76,0x65,0x63,0x34,0x66,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x20,0x78,0x5f,0x32,0x32,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a,0x20,0x20,0x6c,0x65, + 0x74,0x20,0x78,0x5f,0x32,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, 0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74, 0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2c,0x20,0x64,0x72, 0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x72,0x2c,0x20,0x78,0x5f,0x32,0x32,0x29,0x3b,0x0a,0x20,0x20,0x61,0x6c, 0x70,0x68,0x61,0x20,0x3d,0x20,0x78,0x5f,0x32,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20, - 0x6c,0x65,0x74,0x20,0x78,0x5f,0x33,0x37,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66, - 0x20,0x3d,0x20,0x78,0x5f,0x33,0x32,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75, - 0x66,0x66,0x65,0x72,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x20,0x3d,0x20,0x78,0x5f,0x33,0x37, - 0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x34,0x33,0x20,0x3a,0x20,0x66, - 0x33,0x32,0x20,0x3d,0x20,0x78,0x5f,0x33,0x32,0x2e,0x6f,0x76,0x65,0x72,0x5f,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x20,0x3d,0x20,0x78, + 0x5f,0x33,0x32,0x2e,0x67,0x6c,0x79,0x70,0x68,0x5f,0x62,0x75,0x66,0x66,0x65,0x72, + 0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61, 0x6d,0x70,0x6c,0x65,0x20,0x3d,0x20,0x28,0x31,0x2e,0x30,0x66,0x20,0x2f,0x20,0x78, - 0x5f,0x34,0x33,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x34,0x38, - 0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a,0x20, - 0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x35,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32, - 0x66,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65, - 0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x35,0x34,0x20,0x3a,0x20,0x76, - 0x65,0x63,0x34,0x66,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x61, + 0x5f,0x33,0x32,0x2e,0x6f,0x76,0x65,0x72,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x29, + 0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x34,0x38,0x20,0x3d,0x20,0x75, + 0x76,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x35,0x31,0x20,0x3d,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20, + 0x6c,0x65,0x74,0x20,0x78,0x5f,0x35,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65, + 0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2c,0x20, + 0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x78,0x5f,0x34,0x38,0x20,0x2b,0x20,0x28, + 0x76,0x65,0x63,0x32,0x66,0x28,0x2d,0x30,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x78, + 0x5f,0x35,0x31,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f, + 0x35,0x36,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x36,0x31,0x20,0x3d,0x20,0x75, + 0x76,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x36,0x34,0x20,0x3d,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20, + 0x6c,0x65,0x74,0x20,0x78,0x5f,0x36,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65, + 0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2c,0x20, + 0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x78,0x5f,0x36,0x31,0x20,0x2b,0x20,0x28, + 0x76,0x65,0x63,0x32,0x66,0x28,0x2d,0x30,0x2e,0x35,0x66,0x2c,0x20,0x30,0x2e,0x35, + 0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x36,0x34,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x6c,0x65,0x74,0x20,0x78,0x5f,0x36,0x39,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f, + 0x37,0x35,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78, + 0x5f,0x37,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69, + 0x7a,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x38,0x30,0x20,0x3d, + 0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64, + 0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x2c,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f, + 0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x78,0x5f, + 0x37,0x35,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x30,0x2e,0x35,0x66, + 0x2c,0x20,0x2d,0x30,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x37,0x37,0x29, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x38,0x32,0x20,0x3d, + 0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20,0x20, + 0x6c,0x65,0x74,0x20,0x78,0x5f,0x38,0x38,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a,0x20, + 0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x39,0x30,0x20,0x3d,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20, + 0x78,0x5f,0x39,0x33,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x61, 0x6d,0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73, 0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2c,0x20,0x64,0x72,0x61,0x77, 0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x72,0x2c,0x20,0x28,0x78,0x5f,0x34,0x38,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32, - 0x66,0x28,0x2d,0x30,0x2e,0x35,0x66,0x2c,0x20,0x2d,0x30,0x2e,0x35,0x66,0x29,0x20, - 0x2a,0x20,0x78,0x5f,0x35,0x31,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74, - 0x20,0x78,0x5f,0x35,0x36,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x64,0x6f, - 0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74, - 0x20,0x78,0x5f,0x36,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20, - 0x75,0x76,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x36,0x34,0x20,0x3a, - 0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x36, - 0x37,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x20,0x3d,0x20,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74, - 0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2c, - 0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x78,0x5f,0x36,0x31,0x20,0x2b,0x20, - 0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x2d,0x30,0x2e,0x35,0x66,0x2c,0x20,0x30,0x2e, - 0x35,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x36,0x34,0x29,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x36,0x39,0x20,0x3a,0x20,0x66,0x33,0x32,0x20, - 0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20, - 0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x37,0x35,0x20,0x3a,0x20,0x76,0x65,0x63,0x32, - 0x66,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f, - 0x37,0x37,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74, - 0x20,0x78,0x5f,0x38,0x30,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x20,0x3d,0x20, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64,0x72, - 0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x2c,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73, - 0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x78,0x5f,0x37, - 0x35,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x30,0x2e,0x35,0x66,0x2c, - 0x20,0x2d,0x30,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x37,0x37,0x29,0x29, - 0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x38,0x32,0x20,0x3a,0x20, - 0x66,0x33,0x32,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x38,0x38,0x20,0x3a,0x20, - 0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a,0x20,0x20,0x6c,0x65, - 0x74,0x20,0x78,0x5f,0x39,0x30,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d, - 0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20, - 0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x39,0x33,0x20,0x3a,0x20,0x76,0x65,0x63,0x34, - 0x66,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x61,0x6d,0x70,0x6c, - 0x65,0x28,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2c,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65, - 0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20, - 0x28,0x78,0x5f,0x38,0x38,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32,0x66,0x28,0x30, - 0x2e,0x35,0x66,0x2c,0x20,0x30,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x39, - 0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x39,0x35, - 0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x61,0x6c,0x70,0x68,0x61,0x20,0x3d,0x20, - 0x28,0x28,0x28,0x28,0x78,0x5f,0x35,0x34,0x2e,0x78,0x20,0x2a,0x20,0x78,0x5f,0x35, - 0x36,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x36,0x37,0x2e,0x78,0x20,0x2a,0x20,0x78, - 0x5f,0x36,0x39,0x29,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x38,0x30,0x2e,0x78,0x20, - 0x2a,0x20,0x78,0x5f,0x38,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x39,0x33, - 0x2e,0x78,0x20,0x2a,0x20,0x78,0x5f,0x39,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c, - 0x65,0x74,0x20,0x78,0x5f,0x31,0x30,0x34,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66, - 0x20,0x3d,0x20,0x78,0x5f,0x33,0x32,0x2e,0x63,0x6f,0x6c,0x6f,0x75,0x72,0x3b,0x0a, - 0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x30,0x35,0x20,0x3a,0x20,0x76,0x65, - 0x63,0x33,0x66,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x66,0x28,0x78,0x5f,0x31,0x30, - 0x34,0x2e,0x78,0x2c,0x20,0x78,0x5f,0x31,0x30,0x34,0x2e,0x79,0x2c,0x20,0x78,0x5f, - 0x31,0x30,0x34,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f, - 0x31,0x30,0x38,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x78,0x5f,0x33,0x32, - 0x2e,0x63,0x6f,0x6c,0x6f,0x75,0x72,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74, - 0x20,0x78,0x5f,0x31,0x30,0x39,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x61, - 0x6c,0x70,0x68,0x61,0x3b,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, - 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x78,0x5f,0x31,0x30,0x35, - 0x2e,0x78,0x2c,0x20,0x78,0x5f,0x31,0x30,0x35,0x2e,0x79,0x2c,0x20,0x78,0x5f,0x31, - 0x30,0x35,0x2e,0x7a,0x2c,0x20,0x28,0x78,0x5f,0x31,0x30,0x38,0x20,0x2a,0x20,0x78, - 0x5f,0x31,0x30,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e, - 0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69, - 0x6f,0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, - 0x6f,0x72,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x7d,0x0a, - 0x0a,0x40,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x0a,0x66,0x6e,0x20,0x6d,0x61, - 0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x20, - 0x75,0x76,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66, - 0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a, - 0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x75,0x76,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b, - 0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x28,0x66, - 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, - + 0x72,0x2c,0x20,0x28,0x78,0x5f,0x38,0x38,0x20,0x2b,0x20,0x28,0x76,0x65,0x63,0x32, + 0x66,0x28,0x30,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x78,0x5f,0x39,0x30,0x29,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x61,0x6c,0x70,0x68,0x61,0x20,0x3d,0x20,0x28,0x28,0x28, + 0x28,0x78,0x5f,0x35,0x34,0x2e,0x78,0x20,0x2a,0x20,0x78,0x5f,0x35,0x36,0x29,0x20, + 0x2b,0x20,0x28,0x78,0x5f,0x36,0x37,0x2e,0x78,0x20,0x2a,0x20,0x78,0x5f,0x36,0x39, + 0x29,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x38,0x30,0x2e,0x78,0x20,0x2a,0x20,0x78, + 0x5f,0x38,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x78,0x5f,0x39,0x33,0x2e,0x78,0x20, + 0x2a,0x20,0x64,0x6f,0x77,0x6e,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31,0x30,0x35,0x20,0x3d,0x20,0x78, + 0x5f,0x33,0x32,0x2e,0x63,0x6f,0x6c,0x6f,0x75,0x72,0x2e,0x78,0x79,0x7a,0x3b,0x0a, + 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76, + 0x65,0x63,0x34,0x66,0x28,0x78,0x5f,0x31,0x30,0x35,0x2e,0x78,0x2c,0x20,0x78,0x5f, + 0x31,0x30,0x35,0x2e,0x79,0x2c,0x20,0x78,0x5f,0x31,0x30,0x35,0x2e,0x7a,0x2c,0x20, + 0x28,0x78,0x5f,0x33,0x32,0x2e,0x63,0x6f,0x6c,0x6f,0x75,0x72,0x2e,0x77,0x20,0x2a, + 0x20,0x61,0x6c,0x70,0x68,0x61,0x29,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61, + 0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61, + 0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, + 0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x0a, + 0x7d,0x0a,0x0a,0x40,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x0a,0x66,0x6e,0x20, + 0x6d,0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30, + 0x29,0x20,0x75,0x76,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63, + 0x32,0x66,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20, + 0x7b,0x0a,0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x75,0x76,0x5f,0x70,0x61,0x72,0x61, + 0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x3b,0x0a,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74, + 0x28,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a, + 0x00, } draw_text_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc { desc: sg.Shader_Desc diff --git a/backend/sokol/render_glyph.odin b/backend/sokol/render_glyph.odin index e45b235..f98df4d 100644 --- a/backend/sokol/render_glyph.odin +++ b/backend/sokol/render_glyph.odin @@ -387,11 +387,8 @@ render_glyph_fs_source_metal_macos := [238]u8 { var gl_Position : vec4f; fn main_1() { - let x_16 : f32 = v_texture.x; - let x_20 : f32 = v_texture.y; - uv = vec2f(x_16, (1.0f - x_20)); - let x_31 : vec2f = v_position; - gl_Position = vec4f(x_31.x, x_31.y, 0.0f, 1.0f); + uv = vec2f(v_texture.x, (1.0f - v_texture.y)); + gl_Position = vec4f(v_position.x, v_position.y, 0.0f, 1.0f); return; } @@ -409,10 +406,9 @@ render_glyph_fs_source_metal_macos := [238]u8 { main_1(); return main_out(uv, gl_Position); } - */ @(private="file") -render_glyph_vs_source_wgsl := [698]u8 { +render_glyph_vs_source_wgsl := [626]u8 { 0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20, 0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f, 0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69, @@ -424,39 +420,35 @@ render_glyph_vs_source_wgsl := [698]u8 { 0x63,0x32,0x66,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74, 0x65,0x3e,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a, 0x20,0x76,0x65,0x63,0x34,0x66,0x3b,0x0a,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e, - 0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x31, - 0x36,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x76,0x5f,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x78,0x5f,0x32, - 0x30,0x20,0x3a,0x20,0x66,0x33,0x32,0x20,0x3d,0x20,0x76,0x5f,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x32,0x66,0x28,0x78,0x5f,0x31,0x36,0x2c,0x20,0x28,0x31,0x2e,0x30,0x66,0x20, - 0x2d,0x20,0x78,0x5f,0x32,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20, - 0x78,0x5f,0x33,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x20,0x3d,0x20,0x76, - 0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x67,0x6c,0x5f, - 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66, - 0x28,0x78,0x5f,0x33,0x31,0x2e,0x78,0x2c,0x20,0x78,0x5f,0x33,0x31,0x2e,0x79,0x2c, - 0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63, - 0x74,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40, - 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x75,0x76, - 0x5f,0x31,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x2c,0x0a,0x20,0x20,0x40,0x62, - 0x75,0x69,0x6c,0x74,0x69,0x6e,0x28,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29, - 0x0a,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a, - 0x20,0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x76,0x65,0x72,0x74, - 0x65,0x78,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61, - 0x74,0x69,0x6f,0x6e,0x28,0x31,0x29,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x2c, - 0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x76,0x5f, - 0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a, - 0x20,0x76,0x65,0x63,0x32,0x66,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f, - 0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x20,0x3d,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x70,0x61, - 0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f, - 0x6e,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x70, - 0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29, - 0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f, - 0x6f,0x75,0x74,0x28,0x75,0x76,0x2c,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74, - 0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x5f,0x31,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x32,0x66,0x28,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x2e,0x78,0x2c, + 0x20,0x28,0x31,0x2e,0x30,0x66,0x20,0x2d,0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x2e,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73, + 0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x76,0x5f, + 0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x78,0x2c,0x20,0x76,0x5f,0x70,0x6f, + 0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x79,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20, + 0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b, + 0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x5f, + 0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, + 0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x75,0x76,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65, + 0x63,0x32,0x66,0x2c,0x0a,0x20,0x20,0x40,0x62,0x75,0x69,0x6c,0x74,0x69,0x6e,0x28, + 0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x0a,0x20,0x20,0x67,0x6c,0x5f,0x50, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3a,0x20,0x76,0x65,0x63,0x34,0x66,0x2c, + 0x0a,0x7d,0x0a,0x0a,0x40,0x76,0x65,0x72,0x74,0x65,0x78,0x0a,0x66,0x6e,0x20,0x6d, + 0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x31,0x29, + 0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x70,0x61,0x72,0x61,0x6d, + 0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x2c,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74, + 0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x29, + 0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20, + 0x20,0x76,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x20,0x3d,0x20,0x76,0x5f,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20, + 0x76,0x5f,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x5f,0x70, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20, + 0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x28,0x75,0x76,0x2c, + 0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x7d, + 0x0a,0x00, } /* diagnostic(off, derivative_uniformity); @@ -466,7 +458,7 @@ render_glyph_vs_source_wgsl := [698]u8 { var uv : vec2f; fn main_1() { - frag_color = vec4f(1.0f, 1.0f, 1.0f, 1.0f); + frag_color = vec4f(1.0f); return; } @@ -481,10 +473,9 @@ render_glyph_vs_source_wgsl := [698]u8 { main_1(); return main_out(frag_color); } - */ @(private="file") -render_glyph_fs_source_wgsl := [361]u8 { +render_glyph_fs_source_wgsl := [342]u8 { 0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20, 0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f, 0x72,0x6d,0x69,0x74,0x79,0x29,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69, @@ -493,21 +484,20 @@ render_glyph_fs_source_wgsl := [361]u8 { 0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x75,0x76,0x20,0x3a,0x20,0x76,0x65,0x63, 0x32,0x66,0x3b,0x0a,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31,0x28,0x29, 0x20,0x7b,0x0a,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20, - 0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x31,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e, - 0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b, - 0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, - 0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a, - 0x20,0x20,0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x0a,0x20, - 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x20,0x3a,0x20, - 0x76,0x65,0x63,0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x66,0x72,0x61,0x67,0x6d, - 0x65,0x6e,0x74,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63, - 0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x75,0x76,0x5f,0x70,0x61,0x72,0x61, - 0x6d,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61, - 0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x75,0x76,0x20,0x3d,0x20, - 0x75,0x76,0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e, - 0x5f,0x31,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d, - 0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x28,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, - 0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x3d,0x20,0x76,0x65,0x63,0x34,0x66,0x28,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75, + 0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20, + 0x40,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x28,0x30,0x29,0x0a,0x20,0x20,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x31,0x20,0x3a,0x20,0x76,0x65, + 0x63,0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e, + 0x74,0x0a,0x66,0x6e,0x20,0x6d,0x61,0x69,0x6e,0x28,0x40,0x6c,0x6f,0x63,0x61,0x74, + 0x69,0x6f,0x6e,0x28,0x30,0x29,0x20,0x75,0x76,0x5f,0x70,0x61,0x72,0x61,0x6d,0x20, + 0x3a,0x20,0x76,0x65,0x63,0x32,0x66,0x29,0x20,0x2d,0x3e,0x20,0x6d,0x61,0x69,0x6e, + 0x5f,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x75,0x76,0x20,0x3d,0x20,0x75,0x76, + 0x5f,0x70,0x61,0x72,0x61,0x6d,0x3b,0x0a,0x20,0x20,0x6d,0x61,0x69,0x6e,0x5f,0x31, + 0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x69, + 0x6e,0x5f,0x6f,0x75,0x74,0x28,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x29,0x3b,0x0a,0x7d,0x0a,0x00, } render_glyph_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc { desc: sg.Shader_Desc diff --git a/thirdparty/harfbuzz/.gitignore b/thirdparty/harfbuzz/.gitignore new file mode 100644 index 0000000..9493b5d --- /dev/null +++ b/thirdparty/harfbuzz/.gitignore @@ -0,0 +1 @@ +lib diff --git a/thirdparty/harfbuzz/lib/win64/harfbuzz.dll b/thirdparty/harfbuzz/lib/win64/harfbuzz.dll index 14d90569eed1d18126b832003f888b1b7d149eaf..f0fc00c02c5a7436e51ced18cea614d7e639cd4a 100644 GIT binary patch delta 197025 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�qO*~nXq29Hs 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
T%i;m}( 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 z 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�l|z?%sRvRJk{ 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 V#?R%#I=vf)ZrHx4wp&@+e*wEsea`>@ diff --git a/thirdparty/sokol/app/sokol_app_windows_x64_d3d11_debug.lib b/thirdparty/sokol/app/sokol_app_windows_x64_d3d11_debug.lib index 16575a7faa7fa2ab3c8c65c8af221ac27941ff92..d2c0e7c1f02f68aabbe5712b7257d721dbd88cb3 100644 GIT binary patch delta 78591 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 delta 78987 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 diff --git a/thirdparty/sokol/app/sokol_app_windows_x64_gl_debug.lib b/thirdparty/sokol/app/sokol_app_windows_x64_gl_debug.lib index 2172027626b1bc7bf708ab5c5dced4483c81b6c9..0ab61cc9ed15c86bbd0caedd15f49fc2b19c1ba5 100644 GIT binary patch delta 10830 zcmZYE33v@x|G@D(6B0`-SBTtPSuT-?B};>dC6VkLPoK=bV{2bLN~gXKt?VE^~c%nMHQ5 zxR~hZI?+)(DxdNCPui95)!_dFRkuv2hi|{;uD)d=irSh*Sf+$qES3bUhl$u7TdMWt z)2#0h5m-8+7j{zd6{cI0h>8#m#L75G4fVCFKPseHhnOYFSc;ONl%!cx%-msS{ozWl zm}VVm=8iJ!j#euwrdv~qIM6Z;i{cD&!&Gm-BrCApcNlO=EJ6xnZ{nM;V%(@DTk-Jo_@?TwIvsrgngvyBZSAPX~t6}yb<@T7B z-6&n~WrT_h300*kC0Vo0qJ3u3el@MqLhC^yx#m|`0#B%kfp*m>V2a~wa^!la(GSmJ z4ZMJL@q3jUkZ%2vh`{m_$^|cRe1`Q3ksNy+eehPn-Ag0e1tnQ;o5$QSkGZS93d*W} z&phTnMsv&qY=rsv4*rer;)@8iFnEFW6(N!3HA)v+RD>g~To*I9D@t>^MX2Wu{ngKo zk=7n&R!@|1@b3S&X-?%Ns~%Z+IuDcsi>OzX)2*Inu9ulxOs%Lg-CDxTEotU@tB8>F za;44OGG=bsNOdhBR6PtyD%Z4i_s6n0KzW94i1y(e#fi#e zd8~lGSP|ne0N=(c*b75cZm4pE63My3unbm1d2*2$fOXZ9uq;PCA~|;)*2MZK=ZeQx z*i3b+=5jVSYqcx}D11`djxEDL&S?rA8Vh_BA zeefYB@xO^BQOypYY3oN`LEm6?@&{lPzOO>7Z)i1;NXFP8jKIMteK7>5VlvLdq4)`= z;6@yVJ8%SM<4EOO!>~os|I#bbD7_MgvDjD*uNkKPs4>L0j2vl=fzq0lX3f>qSg5+z z3|0ZPGOeFS71sI!JXKQV9jOJR>)-fn;O+{(zBpj^5;MgAF*(xee3Vu{LuvKjkt(wGGTRHY_@!B_(VbH4p>k_0TT!!bfr3;k=G zrFG2GSd^uzL6jO%GgKwl8)9o@R*5&OG(%~4a~d9|tZ^x}1hYn>S)-#_qce>UQwQQw zs&+MNbTe!8HEZ-onIl8_pP*Jn+f{P?RNMPz?Ig4I5VQ7B^|ZdSrI@9|%+e7kb7+ie z-!M#l-5|v_)~qqktTDl?F^L+=HrXt7nx#|C(wXY-hUwNcB2H#WM|t$~=_b3{(I~at zLbF7fC7(za`KylcsaC@*$}o#os_)}7tgFr3b!P4c*R;lC>N%(S7p}+C(9RX6V^y4i z4R99r!!-N|XJaPL!F@Ov^DrHs<2(%3Xel8` zL$M8R#&);^JK|yNgx_Lkl*!x$A7EFsc(C0>AMB2y*aK6rCpxhgW@2yL7(${SiCx$q z_h1t4!$Eim2fHTD%F>+4gf^bQP^^p}U^u2=V;q5faU_n#(YO%DpiH5$xE;sg37mlE z@k6|cAEB&9;qs*BkeEQmTwH+ZxCrOr3Y?GIaRKhcg}5IVVGb_F3#jlm zF2h%7U~xKdIr?G-2I8j}g)8wPN6lH~SWQxv#!QrZUxTvTe1=UiOI@0?+P2QDwcf0? z5oI6uxogSXGFq$6gtA<0!4|j`yW=)ohTAa{ci$n?#LAUF6dZOmcCY00d z$69y*Ww}0x$#@7S<6%^I1h?W>_%$9w*##fRAMqq!!&4~Fip$nLZ7hO5?V|3>agjG1tk0{H>C2WhAQEvYV%KPCe%KIS~WmUX} zU*ONU6K`M+{)&0{8{Wa2D68Ww^yad^V`;pDtOx@vcS*>S@CVA0a1UikxQ{FamIwGQ zKE%=Z7^h)AF2N@#i;1Vo}pQ1Oe$5JS>sWi$LL>WAWW$_#I!SAp<^2YSH zR3s5dD{Uy#%#O)eN$pgJ9DzjA>L3ilV3YywK>6UV>{_xkQfn1LC}S-YD`S{hEga=L zxjHt*TG$yQa3DtFc#OjR7_CYyd)_gINZzD%&>!n!D8`~(v_96x1}JB5h>bBG<^9omO2oA?&R5(;s|I{6wLL^5G!-_Z@E8z$X!_n9Y$6!xPb(LE= zLUWEIlr9;M(xi`29^+(`rNfD`f#F;Q9X$iv6VJr1I1Bq?8Ybgx`~c_RXk3Uha4{~& zCAbw89_D#kJ|Q7%%`(hG1MlDplr<$2YvCG9z;)OT*Q@%gZ#p*;$y4|oOX6nq#ck-o z?N}3cU<~fU9=IE&d3!J&vr+o;0Ll*ZAj(`igl;^74{;*@-~R7rPi1C)(*G!B(uU($ z7Ehw=UrwR4;WWxBcNXP&p2K+j7MtJ&Y=sxG1AdS4ynn#%_>)?;=1|;aBDu;H^uwzt zGb0z@!fPm_G!Ny0UB~+Pi)+DWZ)?uq2<7mb=#95f8uvR&2i?J@co*B^J?xM7F$Eu@ zJikY{7W45IKEY@B6su^gd>Dg&q3ofaBd_XmmKP)@lJN>B<7+iw?VXNVK;fv>QSQnE z>tGR-doPMI=Dlz{7Q^{i0#{&3+=$+|4NI$4>)g?0iR31&C}%B)4)j5}+43lTRRLx0 zR#daryW(s_^8EZ!W{w@Dhbv(;2A~Z6Kup3Q9EA=wdc(<%Rfw!aAy@;eqO4S*C@WML zcEM^W6DAx#z*;DKq9~LOj>h#^Tg~0*j;l)~cM^+1SP#Q74(06iQN~gOlrhv0yJ5U* z;^#_pHX$rc*aD?`0w!Q0%B{4-&e#U!mD3i-VLP0O9Z;sjJGd1);z8_$WqF7_u@b(E z56SOA`k&uI^EQproV_S4PGN5>kA2XF{V)*wqs)&1DC_I{I2e;q=H@_@9vOt$I2gaf zA^0aIV;L?y6w6}@2H`La(JZYk!%4_4WCYg3k=PtZVS5~n@@+H*Wxqcbhv0aWZ>0%1 z9w(|3Ta|NJlZ(N6iaRbVhVk62& z#U`AAn{hsF#ih6%PooPj;%>ZxZp_7O{8jeC`$@+J;#qX!Ih=v#aUtg5QoMj);6*&7J6X3#d`-rWcouW<7rchQ<8^$B zH&FLrWx^8pE0)2VSP5@o4g4Kr@HW=NyVwH%z%Fb_~Q| z494o{!1`DX6EGY*VRh_{HE=xE#Kjna85oJ{FbX$gG;YP(co^$o4#oyL`4AxyN5)NT zh>x%lzQlMe=E>rKWv~ebVKWTD=9q{ruq`HH3bw>i*cvxt8{C5J@ilh9B3>*=P7)C$ zI%5oW#SYjFyI>C-j6E?0-@{SZ3&-IAoP@)1DvrU=F%|dXSUiQ}@Dh&4BJ3$Aq9-~g zktk2%WAsIqwkcIG4O`-D*S$SKx^pg}EPnG)UK8_CUPTMA1ujI{S1m$WkryL#%d!L) zphDU7FUJkI0%bAGz{~h4KE;)2WffS3vc|2(bXg`cNo*uz4IaVI@DgU>&$t%nF-v!# z{D8OMSB9} zrGHXg&vwOqZI+%!d3T*b*-m|fp?DUf@EpqP;#+KqIj*z&`1ZX(C?~&&@^<+i<**+x z8h^wF_!G+EmrxGBjI!gnihVE_2V)*C!t1yff5T&V6TihQ)uCR&0D$A*Tz2z4BTMQ|n- zMcEX2;#%~=eOMNcq7~0#1-!_X-r`FlmyC)igT;mxp1mD)3`F^^4?=m(JFpy9Mt=-J z2Uf*UtcHy+9A$4_9S2}d{0Jj(B}U;Mjo}YUE_}O+f@QZvMWhM*%P+Jj@SyP zU>jVFZSh~&0oUL=D8D^)LKzR8Q98E^eve)8N9>Nbum?WCp7;pg!%{L4dy$ZBOCOX@ z?TfO5?uX$x0ORp}Y=Q$(K7aSlol}p&OI&OB|1T zagxr4eLsnGG7g|D(g!gE4`CJ_#w~aRv+*lDjYsh!9z*$|_yqonCtZ)uY|xxv6PDse zPh(yD21nw*QO5jPJdNk@Hs+v=>F-d6@&%Ni{Vrk{{($l^_!G(xOqZ}LUdFz71&3iS zvIo{JdCLFnndqB@^7wC|FaD15yl(S$9$AG zz!Q{Z^(i*TKd}`)!}ji z<5&{EL2o>drSLl}jjY3#vY3Zfyo)|~56k0Ytc1@n2#e57RZzOQ8rm@&t6>d{(cWXd zCDE3QNR*`^3cF)8_QF`~kM&TNiu(8gHo%eC5XWL8lqDk`r(k2(-1BQ{1wRQM?>D*4 zOP_u9fAd_htw_&$MP|juB%F9&?)(S4-4#E{bhUY%e@VOVZgNSB)wGJn!)uzqvE;Hg zL5q{LpHbzCmZ-ImbR{G0iWZ`^mbA?{enopr>sVN)>{YF$*1s@4>Z(>l8&sIyeO0TV z4KAqfJ-yL8CFz&3_NHGBDJ(6Ps}0bjBaHJkbcZoNm%|K$X80Ld*R=A+x?HW95q3?h zqmB8;$x;i`)TpjaEjV$B>61dD3Qjvs;!th65bRa9Aa6!NVD!z?Jhhnx^$lm97Ot(A z^nb79qwW6RjAQ?sk@Js?Pkz>7wETZ$&{`ku<^N>po>4~AOLXdgZpcS3^F~hK8#y)K z$f*-$IP&T9_it!b_4qf66W_?`_C`+98#%)Ya{P?Xe$hhpab|E`0%u|1uKcTZx0W`; zDC46CX|s%If8EbW^wGn#*@fveNzW}zpOo~x!n9X;(hJP`l3rxim-G^|etCVOgFk#* zTErZV$=O@5bTB+Di&{=^G*Z?x87Qj@>rSko57Rapw<_qZv@L~Mt$p?0nyWB<*jLZi zP86n9MLkQqT$t|Qr}x)>F?RUrk=iZeXFt7$cE?@HrdQFl7gD2(_S%>QdQp2}_dfC0 zqctxh%&sRIOYOSNNVDsuv{FW1sBUv_wd-p=v=pOrkX}a{Y0L@YtYeJ5L3*$@&bTCe zXgm+n*H_{1TINm3Hd3||mPL2oojNHbWLdD+;jw;A_s%zt1?vtQf6y{3TK`+ox9MJG zyb9Lm=$Uq7%~K|0mP4}zsPQ6PFQzpv$Tl8?>)!6_)%9tbHn1S4aPo|&s|QK!Z``iIBT6o;%|!7w zVr%Mg+Gsb012t`p@k1?rm$t_}FG8PHRBsU=?eKHgtgYv3TC&?wSI;i01-P#?(36U3 zyWCBi>!&^Rh#;8+{zh0!{f3?xRB(u~zqMXcYiUHa(j)X%K?OJJp4dvSrWq$&(+nxr z#}?)rY%3|(emAU%X(~TIE@Ne$F{ziwgksCb?pPVL#533ZqL)XuSCJvt5A1Mf JCwWvG_kYgEmkIy? delta 10823 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 diff --git a/thirdparty/sokol/app/sokol_app_windows_x64_gl_release.lib b/thirdparty/sokol/app/sokol_app_windows_x64_gl_release.lib index ae6d6f4873a2ff7cea50630735d4d3b5965134bf..b8505340b867d6e2f13c5e09105c190bc00f2cb6 100644 GIT binary patch delta 574 zcmV-E0>SFIWsXaH8C-bPr_?2RSn_F*PwUli(dD z0~cUKvk4wkVgdh?U4X9v2a^qfumNn7zJXc+aFZE=RRMF8Z-Pbvc9XV(Mge(~{eqzZ zij$v%nE{QHIfOI;kdtnNEdi6WoP?zV0soUih{*v5vkZv>0|A7y4~#(p0iBakjmQD0 zvl@=h0s-Wc>5x(Z=#xB=Q330-j*&ta0imcejX00T==Vok2_$x1>q|WB~+@K5@5~3`_xx1YVNS)wi5X0bl|I Mx)I`Pwod{6k@3^<>;|9j;$@?0k81pAfHia@4P0nv}V=SG#4M~Bk0-yJ5XAU= zvdzRm##fvBCOU~TF4%l=#TG`!t()6c{bFX!*xb188Vh6F=7`M`6oGOtuS^0dsd=Np z#wfFS=_dz4#zw~|i`zF;tT=nMiTZeR)JFPtX z?bgkJQ!}*&RNvf4zRe&z!r9j$0HbzKJZkHGA=9p9?&!J52pquitHX z%lvruwCwNGIgA+#IGjAs3N4bf`8~bCn9+kHyyEUrM-wo_#e(=}WfGg$I2 z{X02*iYucF%dIPGe5T(4$@*0sjM?VKxQ3A>^{1oq^bPJnv8*XKFHXPW4%Cr(bZz@| z2M?f*ev1^#?HwMB5=<!pI`KbjOM5JU)y)EcZjd`fQ)$!N{J+ZdtDiHZ`Nk1|HUxRaHc)tQ-(YHappeq9Iv#=#HA diff --git a/thirdparty/sokol/audio/sokol_audio_windows_x64_gl_debug.lib b/thirdparty/sokol/audio/sokol_audio_windows_x64_gl_debug.lib index 7bd2b86c10d5a6225d8fc227080471d2f5d27d1b..35a35aa67b8a55d5d9ae6caf567065c5f294b8db 100644 GIT binary patch delta 59 zcmbQ%#W}5ubAmLRrLm!*so_S&EJi4E^F+ol7<=+tCUs`91ea!U=5}#r#_i(FO#dAL D*Vhj{ delta 59 zcmbQ%#W}5ubAmLRxv7DXvB^foEJi4E^F+ol7<=+tCUs_(qZ-ZP%flags = (PWinGravity | PPosition | PSize); - hints->win_gravity = StaticGravity; - hints->x = window_xpos; - hints->y = window_ypos; - hints->width = window_width; - hints->height = window_height; + hints->flags = PWinGravity; + hints->win_gravity = CenterGravity; XSetWMNormalHints(_sapp.x11.display, _sapp.x11.window, hints); XFree(hints); - /* announce support for drag'n'drop */ + // announce support for drag'n'drop if (_sapp.drop.enabled) { const Atom version = _SAPP_X11_XDND_VERSION; XChangeProperty(_sapp.x11.display, _sapp.x11.window, _sapp.x11.xdnd.XdndAware, XA_ATOM, 32, PropModeReplace, (unsigned char*) &version, 1); diff --git a/thirdparty/sokol/c/sokol_debugtext.h b/thirdparty/sokol/c/sokol_debugtext.h index 904b778..826cf67 100644 --- a/thirdparty/sokol/c/sokol_debugtext.h +++ b/thirdparty/sokol/c/sokol_debugtext.h @@ -4251,8 +4251,8 @@ static void _sdtx_init_context(sdtx_context ctx_id, const sdtx_context_desc_t* i sg_buffer_desc vbuf_desc; _sdtx_clear(&vbuf_desc, sizeof(vbuf_desc)); vbuf_desc.size = vbuf_size; - vbuf_desc.type = SG_BUFFERTYPE_VERTEXBUFFER; - vbuf_desc.usage = SG_USAGE_STREAM; + vbuf_desc.usage.vertex_buffer = true; + vbuf_desc.usage.stream_update = true; vbuf_desc.label = "sdtx-vbuf"; ctx->vbuf = sg_make_buffer(&vbuf_desc); SOKOL_ASSERT(SG_INVALID_ID != ctx->vbuf.id); diff --git a/thirdparty/sokol/c/sokol_gfx.h b/thirdparty/sokol/c/sokol_gfx.h index 0972f0a..f3deebf 100644 --- a/thirdparty/sokol/c/sokol_gfx.h +++ b/thirdparty/sokol/c/sokol_gfx.h @@ -113,7 +113,7 @@ }); --- create resource objects (at least buffers, shaders and pipelines, - and optionally images, samplers and render-pass-attachments): + and optionally images, samplers and render/compute-pass-attachments): sg_buffer sg_make_buffer(const sg_buffer_desc*) sg_image sg_make_image(const sg_image_desc*) @@ -147,17 +147,22 @@ sg_begin_pass(&(sg_pass){ .compute = true }); + If the compute pass writes into storage images, provide those as + 'storage attachments' via an sg_attachments object: + + sg_begin_pass(&(sg_pass){ .compute = true, .attachments = attattachments }); + --- set the pipeline state for the next draw call with: sg_apply_pipeline(sg_pipeline pip) --- fill an sg_bindings struct with the resource bindings for the next draw- or dispatch-call (0..N vertex buffers, 0 or 1 index buffer, 0..N images, - samplers and storage-buffers), and call: + samplers and storage-buffers), and call sg_apply_bindings(const sg_bindings* bindings) - to update the resource bindings. Note that in a compute pass, no vertex- + ...to update the resource bindings. Note that in a compute pass, no vertex- or index-buffer bindings are allowed and will be rejected by the validation layer. @@ -238,7 +243,7 @@ sg_update_image(sg_image img, const sg_image_data* data) Buffers and images to be updated must have been created with - SG_USAGE_DYNAMIC or SG_USAGE_STREAM. + sg_buffer_desc.usage.dynamic_update or .stream_update. Only one update per frame is allowed for buffer and image resources when using the sg_update_*() functions. The rationale is to have a simple @@ -277,7 +282,7 @@ } A buffer to be used with sg_append_buffer() must have been created - with SG_USAGE_DYNAMIC or SG_USAGE_STREAM. + with sg_buffer_desc.usage.dynamic_update or .stream_update. If the application appends more data to the buffer then fits into the buffer, the buffer will go into the "overflow" state for the @@ -395,7 +400,7 @@ This is why calling sg_query_surface_pitch() for a compressed pixel format and height N, N+1, N+2, ... may return the same result. - The row_align_bytes parammeter is for added flexibility. For image data that goes into + The row_align_bytes parameter is for added flexibility. For image data that goes into the sg_make_image() or sg_update_image() this should generally be 1, because these functions take tightly packed image data as input no matter what alignment restrictions exist in the backend 3D APIs. @@ -701,10 +706,11 @@ ON COMPUTE PASSES ================= - Compute passes are used to update the content of storage resources - (currently only storage buffers) by running compute shader code on - the GPU. This will almost always be more efficient than computing - that same data on the CPU and uploading the data via `sg_update_buffer()`. + Compute passes are used to update the content of storage buffers and + storage images by running compute shader code on + the GPU. Updating storage resources with a compute shader will almost always + be more efficient than computing the same data on the CPU and then uploading + it via `sg_update_buffer()` or `sg_update_image()`. NOTE: compute passes are only supported on the following platforms and backends: @@ -723,33 +729,49 @@ - iOS with GLES3 - Web with WebGL2 - A compute pass is started with: + A compute pass which only updates storage buffers is started with: sg_begin_pass(&(sg_pass){ .compute = true }); - ...and finished with: + ...if the compute pass updates storage images, the images must be 'bound' + via an sg_attachments object: + + sg_begin_pass(&(sg_pass){ .compute = true, .attachments = attachments }); + + Image objects in such a compute pass attachments object must be created with + `storage_attachment` usage: + + sg_image storage_image = sg_make_image(&(sg_image_desc){ + .usage = { + .storage_attachment = true, + }, + // ... + }); + + ...a compute pass is finished with a regular: sg_end_pass(); Typically the following functions will be called inside a compute pass: - sg_apply_pipeline - sg_apply_bindings - sg_apply_uniforms - sg_dispatch + sg_apply_pipeline() + sg_apply_bindings() + sg_apply_uniforms() + sg_dispatch() The following functions are disallowed inside a compute pass and will cause validation layer errors: - sg_apply_viewport[f] - sg_apply_scissor_rect[f] - sg_draw + sg_apply_viewport[f]() + sg_apply_scissor_rect[f]() + sg_draw() Only special 'compute shaders' and 'compute pipelines' can be used in compute passes. A compute shader only has a compute-function instead of a vertex- and fragment-function pair, and it doesn't accept vertex- - and index-buffers as input, only storage-buffers, textures and non-filtering - samplers (more details on compute shaders in the following section). + and index-buffers as input, only storage-buffers, textures, non-filtering + samplers and images via storage attachments (more details on compute shaders in + the following section). A compute pipeline is created by providing a compute shader object, setting the .compute creation parameter to true and not defining any @@ -773,6 +795,7 @@ - https://floooh.github.io/sokol-webgpu/instancing-compute-sapp.html - https://floooh.github.io/sokol-webgpu/computeboids-sapp.html + - https://floooh.github.io/sokol-webgpu/imageblur-sapp.html ON SHADER CREATION @@ -786,7 +809,8 @@ The easiest way to provide all this shader creation data is to use the sokol-shdc shader compiler tool to compile shaders from a common GLSL syntax into backend-specific sources or binary blobs, along with - shader interface information and uniform blocks mapped to C structs. + shader interface information and uniform blocks and storage buffer array items + mapped to C structs. To create a shader using a C header which has been code-generated by sokol-shdc: @@ -815,7 +839,9 @@ - for the desktop GL backend, source code can be provided in '#version 410' or '#version 430', version 430 is required when using storage buffers and compute shaders support, but note that this is not available on macOS - - for the GLES3 backend, source code must be provided in '#version 300 es' syntax + - for the GLES3 backend, source code must be provided in '#version 300 es' or + '#version 310 es' syntax (version 310 is required for storage buffer and + compute shader support, but note that this is not supported on WebGL2) - for the D3D11 backend, shaders can be provided as source or binary blobs, the source code should be in HLSL4.0 (for compatibility with old low-end GPUs) or preferably in HLSL5.0 syntax, note that when @@ -862,7 +888,7 @@ .mtl_threads_per_threadgroup = { .x = 64, .y = 1, .z = 1 }, } - - Information about each uniform block used in the shader: + - Information about each uniform block binding used in the shader: - the shader stage of the uniform block (vertex, fragment or compute) - the size of the uniform block in number of bytes - a memory layout hint (currently 'native' or 'std140') where 'native' defines a @@ -878,7 +904,7 @@ - please also NOTE the documentation sections about UNIFORM DATA LAYOUT and CROSS-BACKEND COMMON UNIFORM DATA LAYOUT below! - - A description of each storage buffer used in the shader: + - A description of each storage buffer binding used in the shader: - the shader stage of the storage buffer - a boolean 'readonly' flag, this is used for validation and hazard tracking in some 3D backends. Note that in render passes, only @@ -892,15 +918,41 @@ buffers and textures share the same bind space for 'shader resource views') - for read/write storage buffer buffer bindings: the UAV register N - (`register(uN)`) where N is 0..7 (in HLSL, readwrite storage + (`register(uN)`) where N is 0..11 (in HLSL, readwrite storage buffers use their own bind space for 'unordered access views') - Metal/MSL: the buffer bind slot N (`[[buffer(N)]]`) where N is 8..15 - WebGPU/WGSL: the binding N in `@group(0) @binding(N)` where N is 0..127 - GL/GLSL: the buffer binding N in `layout(binding=N)` where N is 0..7 - - note that storage buffers are not supported on all backends + - note that storage buffer bindings are not supported on all backends and platforms - - A description of each texture/image used in the shader: + - A description of each storage image binding used in the shader (only supported + in compute shaders): + - the shader stage (*must* be compute) + - the expected image type: + - SG_IMAGETYPE_2D + - SG_IMAGETYPE_CUBE + - SG_IMAGETYPE_3D + - SG_IMAGETYPE_ARRAY + - the 'access pixel format', this is currently limited to: + - SG_PIXELFORMAT_RGBA8 + - SG_PIXELFORMAT_RGBA8SN/UI/SI + - SG_PIXELFORMAT_RGBA16UI/SI/F + - SG_PIXELFORMAT_R32UIUI/SI/F + - SG_PIXELFORMAT_RG32UI/SI/F + - SG_PIXELFORMAT_RGBA32UI/SI/F + - the access type (readwrite or writeonly) + - a backend-specific bind slot: + - D3D11/HLSL: the UAV register N (`register(uN)` where N is 0..11, the + bind slot must not collide with UAV storage buffer bindings + - Metal/MSL: the texture bind slot N (`[[texture(N)]])` where N is 0..19, + the bind slot must not collide with other texture bindings on the same + stage + - WebGPU/WGSL: the binding N in `@group(2) @binding(N)` where N is 0..3 + - GL/GLSL: the buffer binding N in `layout(binding=N)` where N is 0..3 + - note that storage image bindings are not supported on all backends and platforms + + - A description of each texture binding used in the shader: - the shader stage of the texture (vertex, fragment or compute) - the expected image type: - SG_IMAGETYPE_2D @@ -917,7 +969,8 @@ - a backend-specific bind slot: - D3D11/HLSL: the texture register N (`register(tN)`) where N is 0..23 (in HLSL, readonly storage buffers and texture share the same bind space) - - Metal/MSL: the texture bind slot N (`[[texture(N)]]`) where N is 0..15 + - Metal/MSL: the texture bind slot N (`[[texture(N)]]`) where N is 0..19 + (the bind slot must not collide with storage image bindings on the same stage) - WebGPU/WGSL: the binding N in `@group(0) @binding(N)` where N is 0..127 - A description of each sampler used in the shader: @@ -952,24 +1005,26 @@ - D3D11/HLSL: - separate bindslot space per shader stage - - uniform blocks (as cbuffer): `register(b0..b7)` - - textures and readonly storage buffers: `register(t0..t23)` - - read/write storage buffers: `register(u0..u7)` + - uniform block bindings (as cbuffer): `register(b0..b7)` + - texture- and readonly storage buffer bindings: `register(t0..t23)` + - read/write storage buffer and storage image bindings: `register(u0..u11)` - samplers: `register(s0..s15)` - Metal/MSL: - separate bindslot space per shader stage - uniform blocks: `[[buffer(0..7)]]` - storage buffers: `[[buffer(8..15)]]` - - textures: `[[texture(0..15)]]` + - textures and storage image bindings: `[[texture(0..19)]]` - samplers: `[[sampler(0..15)]]` - WebGPU/WGSL: - common bindslot space across shader stages - uniform blocks: `@group(0) @binding(0..15)` - textures, samplers and storage buffers: `@group(1) @binding(0..127)` + - storage image bindings: `@group(2) @binding(0..3)` - GL/GLSL: - uniforms and image-samplers are bound by name - - storage buffers: `layout(std430, binding=0..7)` (common + - storage buffer bindings: `layout(std430, binding=0..7)` (common bindslot space across shader stages) + - storage image bindings: `layout(binding=0..3, [access_format])` For example code of how to create backend-specific shader objects, please refer to the following samples: @@ -1193,7 +1248,7 @@ can only read from storage buffers, while compute-shaders can both read and write storage buffers) - create one or more storage buffers via sg_make_buffer() with the - buffer type SG_BUFFERTYPE_STORAGEBUFFER + `.usage.storage_buffer = true` - when creating a shader via sg_make_shader(), populate the sg_shader_desc struct with binding info (when using sokol-shdc, this step will be taken care of automatically) @@ -1304,8 +1359,8 @@ (https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/sm5-object-rwbyteaddressbuffer) - readonly-storage buffers and textures are both bound as 'shader-resource-view' and share the same bind slots (declared as `register(tN)` in HLSL), where N must be in the range 0..23) - - read/write storage buffers are bound as 'unordered-access-view' (declared as `register(uN)` in HLSL - where N is in the range 0..7) + - read/write storage buffers and storage images are bound as 'unordered-access-view' + (declared as `register(uN)` in HLSL where N is in the range 0..11) Metal: - in Metal there is no internal difference between vertex-, uniform- and @@ -1332,6 +1387,53 @@ `@group(1) @binding(0..127) + ON STORAGE IMAGES: + ================== + To write pixel data to texture objects in compute shaders, first an image + object must be created with `storage_attachment usage`: + + sg_image storage_image = sg_make_image(&(sg_image_desc){ + .usage = { + .storage_attachment = true, + }, + .width = ..., + .height = ..., + .pixel_format = ..., + }); + + ...next the image object must be wrapped in an attachment object, this allows + to pick a specific mipmap level or slice to be accessed by the compute shader: + + sg_attachments storage_attachment = sg_make_attachment(&(sg_attachments_desc){ + .storages[0] = { + .image = storage_image, + .mip_level = ..., + .slice = ..., + }, + }); + + Finally 'bind' the storage image as pass attachment in the `sg_begin_pass` + call of a compute pass: + + sg_begin_pass(&(sg_pass){ .compute = true, .attachments = storage_attachments }); + ... + sg_end_pass(); + + Storage attachments should only be accessed as `readwrite` or `writeonly` mode + in compute shaders because if the limited bind space of up to 4 slots. For + readonly access, just bind the storage image as regular texture via + `sg_apply_bindings()`. + + For an example of using storage images in compute shaders see imageblur-sapp: + + - C code: https://github.com/floooh/sokol-samples/blob/master/sapp/imageblur-sapp.c + - shader: https://github.com/floooh/sokol-samples/blob/master/sapp/imageblur-sapp.glsl + + NOTE: in the (hopefully not-too-distant) future, working with storage + images will change by moving the resource binding from pass attachments to + regular bindings via `sg_apply_bindings()`, but this requires the + introduction of resource view objects into sokol-gfx (see planning + ticket: https://github.com/floooh/sokol/issues/1252) TRACE HOOKS: ============ @@ -1666,6 +1768,11 @@ @group(1) @binding(0..127) + All storage image attachments must use `@group(2)` and bindings + must be in the range 0..3: + + @group(2) @binding(0..3) + Note that the number of texture, sampler and storage buffer bindings is still limited despite the large bind range: @@ -1720,7 +1827,7 @@ - Likewise, the following sokol-gfx pixel formats are not supported in WebGPU: R16, R16SN, RG16, RG16SN, RGBA16, RGBA16SN. Unlike unsupported vertex formats, unsupported pixel formats can be queried - in cross-backend code via sg_query_pixel_format() though. + in cross-backend code via sg_query_pixelformat() though. - The Emscripten WebGPU shim currently doesn't support the Closure minification post-link-step (e.g. currently the emcc argument '--closure 1' or '--closure 2' @@ -1839,6 +1946,7 @@ enum { SG_INVALID_ID = 0, SG_NUM_INFLIGHT_FRAMES = 2, SG_MAX_COLOR_ATTACHMENTS = 4, + SG_MAX_STORAGE_ATTACHMENTS = 4, SG_MAX_UNIFORMBLOCK_MEMBERS = 16, SG_MAX_VERTEX_ATTRIBUTES = 16, SG_MAX_MIPMAPS = 16, @@ -2012,6 +2120,8 @@ typedef struct sg_pixelformat_info { bool msaa; // pixel format supports MSAA when used as render-pass attachment bool depth; // pixel format is a depth format bool compressed; // true if this is a hardware-compressed format + bool read; // true if format supports compute shader read access + bool write; // true if format supports compute shader write access int bytes_per_pixel; // NOTE: this is 0 for compressed formats, use sg_query_row_pitch() / sg_query_surface_pitch() as alternative } sg_pixelformat_info; @@ -2025,6 +2135,7 @@ typedef struct sg_features { bool mrt_independent_write_mask; // multiple-render-target rendering can use per-render-target color write masks bool compute; // storage buffers and compute shaders are supported bool msaa_image_bindings; // if true, multisampled images can be bound as texture resources + bool separate_buffer_types; // cannot use the same buffer for vertex and indices (onlu WebGL2) } sg_features; /* @@ -2068,68 +2179,6 @@ typedef enum sg_resource_state { _SG_RESOURCESTATE_FORCE_U32 = 0x7FFFFFFF } sg_resource_state; -/* - sg_usage - - A resource usage hint describing the update strategy of - buffers and images. This is used in the sg_buffer_desc.usage - and sg_image_desc.usage members when creating buffers - and images: - - SG_USAGE_IMMUTABLE: the resource will never be updated with - new (CPU-side) data, instead the content of the - resource must be provided on creation - SG_USAGE_DYNAMIC: the resource will be updated infrequently - with new data (this could range from "once - after creation", to "quite often but not - every frame") - SG_USAGE_STREAM: the resource will be updated each frame - with new content - - The rendering backends use this hint to prevent that the - CPU needs to wait for the GPU when attempting to update - a resource that might be currently accessed by the GPU. - - Resource content is updated with the functions sg_update_buffer() or - sg_append_buffer() for buffer objects, and sg_update_image() for image - objects. For the sg_update_*() functions, only one update is allowed per - frame and resource object, while sg_append_buffer() can be called - multiple times per frame on the same buffer. The application must update - all data required for rendering (this means that the update data can be - smaller than the resource size, if only a part of the overall resource - size is used for rendering, you only need to make sure that the data that - *is* used is valid). - - The default usage is SG_USAGE_IMMUTABLE. -*/ -typedef enum sg_usage { - _SG_USAGE_DEFAULT, // value 0 reserved for default-init - SG_USAGE_IMMUTABLE, - SG_USAGE_DYNAMIC, - SG_USAGE_STREAM, - _SG_USAGE_NUM, - _SG_USAGE_FORCE_U32 = 0x7FFFFFFF -} sg_usage; - -/* - sg_buffer_type - - Indicates whether a buffer will be bound as vertex-, - index- or storage-buffer. - - Used in the sg_buffer_desc.type member when creating a buffer. - - The default value is SG_BUFFERTYPE_VERTEXBUFFER. -*/ -typedef enum sg_buffer_type { - _SG_BUFFERTYPE_DEFAULT, // value 0 reserved for default-init - SG_BUFFERTYPE_VERTEXBUFFER, - SG_BUFFERTYPE_INDEXBUFFER, - SG_BUFFERTYPE_STORAGEBUFFER, - _SG_BUFFERTYPE_NUM, - _SG_BUFFERTYPE_FORCE_U32 = 0x7FFFFFFF -} sg_buffer_type; - /* sg_index_type @@ -2977,19 +3026,45 @@ typedef struct sg_bindings { uint32_t _end_canary; } sg_bindings; +/* + sg_buffer_usage + + Describes how a buffer object is going to be used: + + .vertex_buffer (default: true) + the buffer will bound as vertex buffer via sg_bindings.vertex_buffers[] + .index_buffer (default: false) + the buffer will bound as index buffer via sg_bindings.index_buffer + .storage_buffer (default: false) + the buffer will bound as storage buffer via sg_bindings.storage_buffers[] + .immutable (default: true) + the buffer content will never be updated from the CPU side (but + may be written to by a compute shader) + .dynamic_update (default: false) + the buffer content will be infrequently updated from the CPU side + .stream_upate (default: false) + the buffer content will be updated each frame from the CPU side +*/ +typedef struct sg_buffer_usage { + bool vertex_buffer; + bool index_buffer; + bool storage_buffer; + bool immutable; + bool dynamic_update; + bool stream_update; +} sg_buffer_usage; + /* sg_buffer_desc - Creation parameters for sg_buffer objects, used in the - sg_make_buffer() call. + Creation parameters for sg_buffer objects, used in the sg_make_buffer() call. The default configuration is: .size: 0 (*must* be >0 for buffers without data) - .type: SG_BUFFERTYPE_VERTEXBUFFER - .usage: SG_USAGE_IMMUTABLE - .data.ptr 0 (*must* be valid for immutable buffers) - .data.size 0 (*must* be > 0 for immutable buffers) + .usage .vertex_buffer = true, .immutable = true + .data.ptr 0 (*must* be valid for immutable buffers without storage buffer usage) + .data.size 0 (*must* be > 0 for immutable buffers without storage buffer usage) .label 0 (optional string label) For immutable buffers which are initialized with initial data, @@ -2999,14 +3074,18 @@ typedef struct sg_bindings { For immutable or mutable buffers without initial data, keep the .data item zero-initialized, and set the buffer size in the .size item instead. - NOTE: Immutable buffers without initial data are guaranteed to be - zero-initialized. For mutable (dynamic or streaming) buffers, the - initial content is undefined. - You can also set both size values, but currently both size values must be identical (this may change in the future when the dynamic resource management may become more flexible). + NOTE: Immutable buffers without storage-buffer-usage *must* be created + with initial content, this restriction doesn't apply to storage buffer usage, + because storage buffers may also get their initial content by running + a compute shader on them. + + NOTE: Buffers without initial data will have undefined content, e.g. + do *not* expect the buffer to be zero-initialized! + ADVANCED TOPIC: Injecting native 3D-API buffers: The following struct members allow to inject your own GL, Metal @@ -3017,12 +3096,12 @@ typedef struct sg_bindings { .d3d11_buffer You must still provide all other struct items except the .data item, and - these must match the creation parameters of the native buffers you - provide. For SG_USAGE_IMMUTABLE, only provide a single native 3D-API - buffer, otherwise you need to provide SG_NUM_INFLIGHT_FRAMES buffers + these must match the creation parameters of the native buffers you provide. + For sg_buffer_desc.usage.immutable buffers, only provide a single native + 3D-API buffer, otherwise you need to provide SG_NUM_INFLIGHT_FRAMES buffers (only for GL and Metal, not D3D11). Providing multiple buffers for GL and - Metal is necessary because sokol_gfx will rotate through them when - calling sg_update_buffer() to prevent lock-stalls. + Metal is necessary because sokol_gfx will rotate through them when calling + sg_update_buffer() to prevent lock-stalls. Note that it is expected that immutable injected buffer have already been initialized with content, and the .content member must be 0! @@ -3033,8 +3112,7 @@ typedef struct sg_bindings { typedef struct sg_buffer_desc { uint32_t _start_canary; size_t size; - sg_buffer_type type; - sg_usage usage; + sg_buffer_usage usage; sg_range data; const char* label; // optionally inject backend-specific resources @@ -3045,6 +3123,35 @@ typedef struct sg_buffer_desc { uint32_t _end_canary; } sg_buffer_desc; +/* + sg_image_usage + + Describes how the image object is going to be used: + + .render_attachment (default: false) + the image object is used as color-, resolve- or depth-stencil- + attachment in a render pass + .storage_attachment (default: false) + the image object is used as storage-attachment in a + compute pass (to be written to by compute shaders) + .immutable (default: true) + the image content cannot be updated from the CPU side + (but may be updated by the GPU in a render- or compute-pass) + .dynamic_update (default: false) + the image content is updated infrequently by the CPU + .stream_update (default: false) + the image content is updated each frame by the CPU via + + Note that the usage as texture binding is implicit and always allowed. +*/ +typedef struct sg_image_usage { + bool render_attachment; + bool storage_attachment; + bool immutable; + bool dynamic_update; + bool stream_update; +} sg_image_usage; + /* sg_image_data @@ -3063,15 +3170,14 @@ typedef struct sg_image_data { The default configuration is: - .type: SG_IMAGETYPE_2D - .render_target: false + .type SG_IMAGETYPE_2D + .usage .immutable = true .width 0 (must be set to >0) .height 0 (must be set to >0) .num_slices 1 (3D textures: depth; array textures: number of layers) - .num_mipmaps: 1 - .usage: SG_USAGE_IMMUTABLE - .pixel_format: SG_PIXELFORMAT_RGBA8 for textures, or sg_desc.environment.defaults.color_format for render targets - .sample_count: 1 for textures, or sg_desc.environment.defaults.sample_count for render targets + .num_mipmaps 1 + .pixel_format SG_PIXELFORMAT_RGBA8 for textures, or sg_desc.environment.defaults.color_format for render targets + .sample_count 1 for textures, or sg_desc.environment.defaults.sample_count for render targets .data an sg_image_data struct to define the initial content .label 0 (optional string label for trace hooks) @@ -3086,9 +3192,13 @@ typedef struct sg_image_data { NOTE: - Images with usage SG_USAGE_IMMUTABLE must be fully initialized by + Regular (non-attachment) images with usage.immutable must be fully initialized by providing a valid .data member which points to initialization data. + Images with usage.render_attachment or usage.storage_attachment must + *not* be created with initial content. Be aware that the initial + content of render- and storage-attachment images is undefined. + ADVANCED TOPIC: Injecting native 3D-API textures: The following struct members allow to inject your own GL, Metal or D3D11 @@ -3115,12 +3225,11 @@ typedef struct sg_image_data { typedef struct sg_image_desc { uint32_t _start_canary; sg_image_type type; - bool render_target; + sg_image_usage usage; int width; int height; int num_slices; int num_mipmaps; - sg_usage usage; sg_pixel_format pixel_format; int sample_count; sg_image_data data; @@ -3184,7 +3293,7 @@ typedef struct sg_sampler_desc { reflection information to sokol-gfx. If you use sokol-shdc you can ignore the following information since - the sg_shader_desc struct will be code generated. + the sg_shader_desc struct will be code-generated. Otherwise you need to provide the following information to the sg_make_shader() call: @@ -3219,7 +3328,7 @@ typedef struct sg_sampler_desc { - WGSL: `@workgroup_size(x, y, z)` ...but in Metal the workgroup size is declared on the CPU side - - reflection information for each uniform block used by the shader: + - reflection information for each uniform block binding used by the shader: - the shader stage the uniform block appears in (SG_SHADERSTAGE_*) - the size in bytes of the uniform block - backend-specific bindslots: @@ -3233,14 +3342,14 @@ typedef struct sg_sampler_desc { - if the member is an array, the array count - the member name - - reflection information for each texture used by the shader: + - reflection information for each texture binding used by the shader: - the shader stage the texture appears in (SG_SHADERSTAGE_*) - the image type (SG_IMAGETYPE_*) - the image-sample type (SG_IMAGESAMPLETYPE_*) - whether the texture is multisampled - backend specific bindslots: - HLSL: the texture register `register(t0..23)` - - MSL: the texture attribute `[[texture(0..15)]]` + - MSL: the texture attribute `[[texture(0..19)]]` - WGSL: the binding in `@group(1) @binding(0..127)` - reflection information for each sampler used by the shader: @@ -3251,18 +3360,31 @@ typedef struct sg_sampler_desc { - MSL: the sampler attribute `[[sampler(0..15)]]` - WGSL: the binding in `@group(0) @binding(0..127)` - - reflection information for each storage buffer used by the shader: + - reflection information for each storage buffer binding used by the shader: - the shader stage the storage buffer appears in (SG_SHADERSTAGE_*) - - whether the storage buffer is readonly (currently this must - always be true) + - whether the storage buffer is readonly - backend specific bindslots: - HLSL: - for readonly storage buffer bindings: `register(t0..23)` - - for read/write storage buffer bindings: `register(u0..7)` + - for read/write storage buffer bindings: `register(u0..11)` - MSL: the buffer attribute `[[buffer(8..15)]]` - WGSL: the binding in `@group(1) @binding(0..127)` - GL: the binding in `layout(binding=0..7)` + - reflection information for each storage image binding used by the shader: + - the shader stage (*must* be SG_SHADERSTAGE_COMPUTE) + - whether the storage image is writeonly or readwrite (for readonly + access use a regular texture binding instead) + - the image type expected by the shader (SG_IMAGETYPE_*) + - the access pixel format expected by the shader (SG_PIXELFORMAT_*), + note that only a subset of pixel formats is allowed for storage image + bindings + - backend specific bindslots: + - HLSL: the UAV register `register(u0..u11)` + - MSL: the texture attribute `[[texture(0..19)]]` + - WGSL: the binding in `@group(2) @binding(0..3)` + - GLSL: the binding in `layout(binding=0..3, [access_format])` + - reflection information for each combined image-sampler object used by the shader: - the shader stage (SG_SHADERSTAGE_*) @@ -3292,9 +3414,9 @@ typedef struct sg_sampler_desc { For all GL backends, shader source-code must be provided. For D3D11 and Metal, either shader source-code or byte-code can be provided. - NOTE that the uniform block, image, sampler and storage_buffer arrays - can have gaps. This allows to use the same sg_bindings struct for - different related shader variants. + NOTE that the uniform block, image, sampler, storage_buffer and + storage_image arrays may have gaps. This allows to use the same sg_bindings + struct for different related shader variants. For D3D11, if source code is provided, the d3dcompiler_47.dll will be loaded on demand. If this fails, shader creation will fail. When compiling HLSL @@ -3376,6 +3498,17 @@ typedef struct sg_shader_storage_buffer { uint8_t glsl_binding_n; // GLSL layout(binding=n) } sg_shader_storage_buffer; +typedef struct sg_shader_storage_image { + sg_shader_stage stage; // must be NONE or COMPUTE + sg_image_type image_type; + sg_pixel_format access_format; // shader-access pixel format + bool writeonly; // false means read/write access + uint8_t hlsl_register_u_n; // HLSL register(un) bind slot + uint8_t msl_texture_n; // MSL [[texture(n)]] bind slot + uint8_t wgsl_group2_binding_n; // WGSL @group(2) @binding(n) bind slot + uint8_t glsl_binding_n; // GLSL layout(binding=n) +} sg_shader_storage_image; + typedef struct sg_shader_image_sampler_pair { sg_shader_stage stage; uint8_t image_slot; @@ -3398,6 +3531,7 @@ typedef struct sg_shader_desc { sg_shader_image images[SG_MAX_IMAGE_BINDSLOTS]; sg_shader_sampler samplers[SG_MAX_SAMPLER_BINDSLOTS]; sg_shader_image_sampler_pair image_sampler_pairs[SG_MAX_IMAGE_SAMPLER_PAIRS]; + sg_shader_storage_image storage_images[SG_MAX_STORAGE_ATTACHMENTS]; sg_mtl_shader_threads_per_threadgroup mtl_threads_per_threadgroup; const char* label; uint32_t _end_canary; @@ -3431,6 +3565,10 @@ typedef struct sg_shader_desc { Please note that ALL vertex attribute offsets must be 0 in order for the automatic offset computation to kick in. + Note that if you use vertex-pulling from storage buffers instead of + fixed-function vertex input you can simply omit the entire nested .layout + struct. + The default configuration is as follows: .compute: false (must be set to true for a compute pipeline) @@ -3566,11 +3704,25 @@ typedef struct sg_pipeline_desc { Creation parameters for an sg_attachments object, used as argument to the sg_make_attachments() function. - An attachments object bundles 0..4 color attachments, 0..4 msaa-resolve - attachments, and none or one depth-stencil attachmente for use - in a render pass. At least one color attachment or one depth-stencil - attachment must be provided (no color attachment and a depth-stencil - attachment is useful for a depth-only render pass). + An attachments object bundles either bundles 'render attachments' for + a render pass, or 'storage attachments' for a compute pass which writes + to storage images. + + Render attachments are: + + - 0..4 color attachment images + - 0..4 msaa-resolve attachment images + - 0 or one depth-stencil attachment image + + Note that all types of render attachment images must be created with + `sg_image_desc.usage.render_attachment = true`. At least one color-attachment + or depth-stencil-attachment image must be provided in a render pass + (only providing a depth-stencil-attachment is useful for depth-only passes). + + Alternatively provide 1..4 storage attachment images which must be created + with `sg_image_desc.usage.storage_attachment = true`. + + An sg_attachments object cannot have both render- and storage-attachments. Each attachment definition consists of an image object, and two additional indices describing which subimage the pass will render into: one mipmap index, and if the image @@ -3602,6 +3754,7 @@ typedef struct sg_attachments_desc { sg_attachment_desc colors[SG_MAX_COLOR_ATTACHMENTS]; sg_attachment_desc resolves[SG_MAX_COLOR_ATTACHMENTS]; sg_attachment_desc depth_stencil; + sg_attachment_desc storages[SG_MAX_STORAGE_ATTACHMENTS]; const char* label; uint32_t _end_canary; } sg_attachments_desc; @@ -3924,6 +4077,7 @@ typedef struct sg_frame_stats { _SG_LOGITEM_XMACRO(GL_3D_TEXTURES_NOT_SUPPORTED, "3d textures not supported (gl)") \ _SG_LOGITEM_XMACRO(GL_ARRAY_TEXTURES_NOT_SUPPORTED, "array textures not supported (gl)") \ _SG_LOGITEM_XMACRO(GL_STORAGEBUFFER_GLSL_BINDING_OUT_OF_RANGE, "GLSL storage buffer bindslot is out of range (must be 0..7) (gl)") \ + _SG_LOGITEM_XMACRO(GL_STORAGEIMAGE_GLSL_BINDING_OUT_OF_RANGE, "GLSL storage image bindslot is out of range (must be 0..3) (gl)") \ _SG_LOGITEM_XMACRO(GL_SHADER_COMPILATION_FAILED, "shader compilation failed (gl)") \ _SG_LOGITEM_XMACRO(GL_SHADER_LINKING_FAILED, "shader linking failed (gl)") \ _SG_LOGITEM_XMACRO(GL_VERTEX_ATTRIBUTE_NOT_FOUND_IN_SHADER, "vertex attribute not found in shader; NOTE: may be caused by GL driver's GLSL compiler removing unused globals") \ @@ -3950,9 +4104,10 @@ typedef struct sg_frame_stats { _SG_LOGITEM_XMACRO(D3D11_CREATE_SAMPLER_STATE_FAILED, "CreateSamplerState() failed (d3d11)") \ _SG_LOGITEM_XMACRO(D3D11_UNIFORMBLOCK_HLSL_REGISTER_B_OUT_OF_RANGE, "uniform block 'hlsl_register_b_n' is out of range (must be 0..7)") \ _SG_LOGITEM_XMACRO(D3D11_STORAGEBUFFER_HLSL_REGISTER_T_OUT_OF_RANGE, "storage buffer 'hlsl_register_t_n' is out of range (must be 0..23)") \ - _SG_LOGITEM_XMACRO(D3D11_STORAGEBUFFER_HLSL_REGISTER_U_OUT_OF_RANGE, "storage buffer 'hlsl_register_u_n' is out of range (must be 0..7)") \ + _SG_LOGITEM_XMACRO(D3D11_STORAGEBUFFER_HLSL_REGISTER_U_OUT_OF_RANGE, "storage buffer 'hlsl_register_u_n' is out of range (must be 0..11)") \ _SG_LOGITEM_XMACRO(D3D11_IMAGE_HLSL_REGISTER_T_OUT_OF_RANGE, "image 'hlsl_register_t_n' is out of range (must be 0..23)") \ _SG_LOGITEM_XMACRO(D3D11_SAMPLER_HLSL_REGISTER_S_OUT_OF_RANGE, "sampler 'hlsl_register_s_n' is out of rang (must be 0..15)") \ + _SG_LOGITEM_XMACRO(D3D11_STORAGEIMAGE_HLSL_REGISTER_U_OUT_OF_RANGE, "storage image 'hlsl_register_u_n' is out of range (must be 0..11)") \ _SG_LOGITEM_XMACRO(D3D11_LOAD_D3DCOMPILER_47_DLL_FAILED, "loading d3dcompiler_47.dll failed (d3d11)") \ _SG_LOGITEM_XMACRO(D3D11_SHADER_COMPILATION_FAILED, "shader compilation failed (d3d11)") \ _SG_LOGITEM_XMACRO(D3D11_SHADER_COMPILATION_OUTPUT, "") \ @@ -3963,6 +4118,7 @@ typedef struct sg_frame_stats { _SG_LOGITEM_XMACRO(D3D11_CREATE_BLEND_STATE_FAILED, "CreateBlendState() failed (d3d11)") \ _SG_LOGITEM_XMACRO(D3D11_CREATE_RTV_FAILED, "CreateRenderTargetView() failed (d3d11)") \ _SG_LOGITEM_XMACRO(D3D11_CREATE_DSV_FAILED, "CreateDepthStencilView() failed (d3d11)") \ + _SG_LOGITEM_XMACRO(D3D11_CREATE_UAV_FAILED, "CreateUnorderedAccessView() failed (d3d11)") \ _SG_LOGITEM_XMACRO(D3D11_MAP_FOR_UPDATE_BUFFER_FAILED, "Map() failed when updating buffer (d3d11)") \ _SG_LOGITEM_XMACRO(D3D11_MAP_FOR_APPEND_BUFFER_FAILED, "Map() failed when appending to buffer (d3d11)") \ _SG_LOGITEM_XMACRO(D3D11_MAP_FOR_UPDATE_IMAGE_FAILED, "Map() failed when updating image (d3d11)") \ @@ -3976,7 +4132,8 @@ typedef struct sg_frame_stats { _SG_LOGITEM_XMACRO(METAL_SHADER_ENTRY_NOT_FOUND, "shader entry function not found (metal)") \ _SG_LOGITEM_XMACRO(METAL_UNIFORMBLOCK_MSL_BUFFER_SLOT_OUT_OF_RANGE, "uniform block 'msl_buffer_n' is out of range (must be 0..7)") \ _SG_LOGITEM_XMACRO(METAL_STORAGEBUFFER_MSL_BUFFER_SLOT_OUT_OF_RANGE, "storage buffer 'msl_buffer_n' is out of range (must be 8..15)") \ - _SG_LOGITEM_XMACRO(METAL_IMAGE_MSL_TEXTURE_SLOT_OUT_OF_RANGE, "image 'msl_texture_n' is out of range (must be 0..15)") \ + _SG_LOGITEM_XMACRO(METAL_STORAGEIMAGE_MSL_TEXTURE_SLOT_OUT_OF_RANGE, "storage image 'msl_texture_n' is out of range (must be 0..19)") \ + _SG_LOGITEM_XMACRO(METAL_IMAGE_MSL_TEXTURE_SLOT_OUT_OF_RANGE, "image 'msl_texture_n' is out of range (must be 0..19)") \ _SG_LOGITEM_XMACRO(METAL_SAMPLER_MSL_SAMPLER_SLOT_OUT_OF_RANGE, "sampler 'msl_sampler_n' is out of range (must be 0..15)") \ _SG_LOGITEM_XMACRO(METAL_CREATE_CPS_FAILED, "failed to create compute pipeline state (metal)") \ _SG_LOGITEM_XMACRO(METAL_CREATE_CPS_OUTPUT, "") \ @@ -3997,6 +4154,7 @@ typedef struct sg_frame_stats { _SG_LOGITEM_XMACRO(WGPU_STORAGEBUFFER_WGSL_GROUP1_BINDING_OUT_OF_RANGE, "storage buffer 'wgsl_group1_binding_n' is out of range (must be 0..127)") \ _SG_LOGITEM_XMACRO(WGPU_IMAGE_WGSL_GROUP1_BINDING_OUT_OF_RANGE, "image 'wgsl_group1_binding_n' is out of range (must be 0..127)") \ _SG_LOGITEM_XMACRO(WGPU_SAMPLER_WGSL_GROUP1_BINDING_OUT_OF_RANGE, "sampler 'wgsl_group1_binding_n' is out of range (must be 0..127)") \ + _SG_LOGITEM_XMACRO(WGPU_STORAGEIMAGE_WGSL_GROUP2_BINDING_OUT_OF_RANGE, "storage image 'wgsl_group2_binding_n' is out of range (must be 0..3)") \ _SG_LOGITEM_XMACRO(WGPU_CREATE_PIPELINE_LAYOUT_FAILED, "wgpuDeviceCreatePipelineLayout() failed") \ _SG_LOGITEM_XMACRO(WGPU_CREATE_RENDER_PIPELINE_FAILED, "wgpuDeviceCreateRenderPipeline() failed") \ _SG_LOGITEM_XMACRO(WGPU_CREATE_COMPUTE_PIPELINE_FAILED, "wgpuDeviceCreateComputePipeline() failed") \ @@ -4038,29 +4196,37 @@ typedef struct sg_frame_stats { _SG_LOGITEM_XMACRO(APPLY_BINDINGS_STORAGE_BUFFER_TRACKER_EXHAUSTED, "sg_apply_bindings: too many read/write storage buffers in pass (bump sg_desc.max_dispatch_calls_per_pass") \ _SG_LOGITEM_XMACRO(DRAW_WITHOUT_BINDINGS, "attempting to draw without resource bindings") \ _SG_LOGITEM_XMACRO(VALIDATE_BUFFERDESC_CANARY, "sg_buffer_desc not initialized") \ + _SG_LOGITEM_XMACRO(VALIDATE_BUFFERDESC_IMMUTABLE_DYNAMIC_STREAM, "sg_buffer_desc.usage: only one of .immutable, .dynamic_update, .stream_update can be true") \ + _SG_LOGITEM_XMACRO(VALIDATE_BUFFERDESC_SEPARATE_BUFFER_TYPES, "sg_buffer_desc.usage: on WebGL2, only one of .vertex_buffer or .index_buffer can be true (check sg_features.separate_buffer_types)") \ _SG_LOGITEM_XMACRO(VALIDATE_BUFFERDESC_EXPECT_NONZERO_SIZE, "sg_buffer_desc.size must be greater zero") \ _SG_LOGITEM_XMACRO(VALIDATE_BUFFERDESC_EXPECT_MATCHING_DATA_SIZE, "sg_buffer_desc.size and .data.size must be equal") \ _SG_LOGITEM_XMACRO(VALIDATE_BUFFERDESC_EXPECT_ZERO_DATA_SIZE, "sg_buffer_desc.data.size expected to be zero") \ _SG_LOGITEM_XMACRO(VALIDATE_BUFFERDESC_EXPECT_NO_DATA, "sg_buffer_desc.data.ptr must be null for dynamic/stream buffers") \ + _SG_LOGITEM_XMACRO(VALIDATE_BUFFERDESC_EXPECT_DATA, "sg_buffer_desc: initial content data must be provided for immutable buffers without storage buffer usage") \ _SG_LOGITEM_XMACRO(VALIDATE_BUFFERDESC_STORAGEBUFFER_SUPPORTED, "storage buffers not supported by the backend 3D API (requires OpenGL >= 4.3)") \ _SG_LOGITEM_XMACRO(VALIDATE_BUFFERDESC_STORAGEBUFFER_SIZE_MULTIPLE_4, "size of storage buffers must be a multiple of 4") \ _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDATA_NODATA, "sg_image_data: no data (.ptr and/or .size is zero)") \ _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDATA_DATA_SIZE, "sg_image_data: data size doesn't match expected surface size") \ _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_CANARY, "sg_image_desc not initialized") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_IMMUTABLE_DYNAMIC_STREAM, "sg_image_desc.usage: only one of .immutable, .dynamic_update, .stream_update can be true") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDER_VS_STORAGE_ATTACHMENT, "sg_image_desc.usage: only one of .render_attachment or .storage_attachment can be true") \ _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_WIDTH, "sg_image_desc.width must be > 0") \ _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_HEIGHT, "sg_image_desc.height must be > 0") \ - _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RT_PIXELFORMAT, "invalid pixel format for render-target image") \ _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_NONRT_PIXELFORMAT, "invalid pixel format for non-render-target image") \ - _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_MSAA_BUT_NO_RT, "non-render-target images cannot be multisampled") \ - _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_NO_MSAA_RT_SUPPORT, "MSAA not supported for this pixel format") \ - _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_MSAA_NUM_MIPMAPS, "MSAA images must have num_mipmaps == 1") \ - _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_MSAA_3D_IMAGE, "3D images cannot have a sample_count > 1") \ - _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_MSAA_CUBE_IMAGE, "cube images cannot have sample_count > 1") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_MSAA_BUT_NO_ATTACHMENT, "non-attachment images cannot be multisampled") \ _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_DEPTH_3D_IMAGE, "3D images cannot have a depth/stencil image format") \ - _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RT_IMMUTABLE, "render target images must be SG_USAGE_IMMUTABLE") \ - _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RT_NO_DATA, "render target images cannot be initialized with data") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_ATTACHMENT_EXPECT_IMMUTABLE, "render/storage attachment images must be sg_image_usage.immutable") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_ATTACHMENT_EXPECT_NO_DATA, "render/storage attachment images cannot be initialized with data") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDERATTACHMENT_NO_MSAA_SUPPORT, "multisampling not supported for this pixel format") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_NUM_MIPMAPS, "multisample images must have num_mipmaps == 1") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_3D_IMAGE, "3D images cannot have a sample_count > 1") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_CUBE_IMAGE, "cube images cannot have sample_count > 1") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_ARRAY_IMAGE, "array images cannot have sample_count > 1") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_RENDERATTACHMENT_PIXELFORMAT, "invalid pixel format for render attachment image") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_STORAGEATTACHMENT_PIXELFORMAT, "invalid pixel format for storage attachment image") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_STORAGEATTACHMENT_EXPECT_NO_MSAA, "storage attachment images cannot be multisampled") \ _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_INJECTED_NO_DATA, "images with injected textures cannot be initialized with data") \ - _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_DYNAMIC_NO_DATA, "dynamic/stream images cannot be initialized with data") \ + _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_DYNAMIC_NO_DATA, "dynamic/stream-update images cannot be initialized with data") \ _SG_LOGITEM_XMACRO(VALIDATE_IMAGEDESC_COMPRESSED_IMMUTABLE, "compressed images must be immutable") \ _SG_LOGITEM_XMACRO(VALIDATE_SAMPLERDESC_CANARY, "sg_sampler_desc not initialized") \ _SG_LOGITEM_XMACRO(VALIDATE_SAMPLERDESC_ANISTROPIC_REQUIRES_LINEAR_FILTERING, "sg_sampler_desc.max_anisotropy > 1 requires min/mag/mipmap_filter to be SG_FILTER_LINEAR") \ @@ -4091,14 +4257,23 @@ typedef struct sg_frame_stats { _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEBUFFER_METAL_BUFFER_SLOT_COLLISION, "storage buffer 'msl_buffer_n' must be unique across uniform blocks and storage buffer in same shader stage") \ _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEBUFFER_HLSL_REGISTER_T_OUT_OF_RANGE, "storage buffer 'hlsl_register_t_n' is out of range (must be 0..23)") \ _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEBUFFER_HLSL_REGISTER_T_COLLISION, "storage_buffer 'hlsl_register_t_n' must be unique across read-only storage buffers and images in same shader stage") \ - _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEBUFFER_HLSL_REGISTER_U_OUT_OF_RANGE, "storage buffer 'hlsl_register_u_n' is out of range (must be 0..7)") \ - _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEBUFFER_HLSL_REGISTER_U_COLLISION, "storage_buffer 'hlsl_register_u_n' must be unique across read/write storage buffers in same shader stage") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEBUFFER_HLSL_REGISTER_U_OUT_OF_RANGE, "storage buffer 'hlsl_register_u_n' is out of range (must be 0..11)") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEBUFFER_HLSL_REGISTER_U_COLLISION, "storage_buffer 'hlsl_register_u_n' must be unique across read/write storage buffers and storage images in same shader stage") \ _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEBUFFER_GLSL_BINDING_OUT_OF_RANGE, "storage buffer 'glsl_binding_n' is out of range (must be 0..7)") \ _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEBUFFER_GLSL_BINDING_COLLISION, "storage buffer 'glsl_binding_n' must be unique across shader stages") \ _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEBUFFER_WGSL_GROUP1_BINDING_OUT_OF_RANGE, "storage buffer 'wgsl_group1_binding_n' is out of range (must be 0..127)") \ _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEBUFFER_WGSL_GROUP1_BINDING_COLLISION, "storage buffer 'wgsl_group1_binding_n' must be unique across all images, samplers and storage buffers") \ - _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_IMAGE_METAL_TEXTURE_SLOT_OUT_OF_RANGE, "image 'msl_texture_n' is out of range (must be 0..15)") \ - _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_IMAGE_METAL_TEXTURE_SLOT_COLLISION, "image 'msl_texture_n' must be unique in same shader stage") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEIMAGE_EXPECT_COMPUTE_STAGE, "storage images are only allowed on the compute stage") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEIMAGE_METAL_TEXTURE_SLOT_OUT_OF_RANGE, "storage image 'msl_texture_n' is out of range (must be 0..19") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEIMAGE_METAL_TEXTURE_SLOT_COLLISION, "storage image 'msl_texture_n' must be unique across images and storage images in same shader stage") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEIMAGE_HLSL_REGISTER_U_OUT_OF_RANGE, "storage image 'hlsl_register_u_n' is out of range (must be 0..11)") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEIMAGE_HLSL_REGISTER_U_COLLISION, "storage image 'hlsl_register_u_n' must be unique across storage images and read/write storage buffers in same shader stage") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEIMAGE_GLSL_BINDING_OUT_OF_RANGE, "storage image 'glsl_binding_n' is out of range (must be 0..4)") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEIMAGE_GLSL_BINDING_COLLISION, "storage image 'glsl_binding_n' must be unique across shader stages") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEIMAGE_WGSL_GROUP2_BINDING_OUT_OF_RANGE, "storage image 'wgsl_group2_binding_n' is out of range (must be 0..7)") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_STORAGEIMAGE_WGSL_GROUP2_BINDING_COLLISION, "storage image 'wgsl_group2_binding_n' must be unique in same shader stage") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_IMAGE_METAL_TEXTURE_SLOT_OUT_OF_RANGE, "image 'msl_texture_n' is out of range (must be 0..19)") \ + _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_IMAGE_METAL_TEXTURE_SLOT_COLLISION, "image 'msl_texture_n' must be unique across images and storage images in same shader stage") \ _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_IMAGE_HLSL_REGISTER_T_OUT_OF_RANGE, "image 'hlsl_register_t_n' is out of range (must be 0..23)") \ _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_IMAGE_HLSL_REGISTER_T_COLLISION, "image 'hlsl_register_t_n' must be unique across images and storage buffers in same shader stage") \ _SG_LOGITEM_XMACRO(VALIDATE_SHADERDESC_IMAGE_WGSL_GROUP1_BINDING_OUT_OF_RANGE, "image 'wgsl_group1_binding_n' is out of range (must be 0..127)") \ @@ -4130,43 +4305,53 @@ typedef struct sg_frame_stats { _SG_LOGITEM_XMACRO(VALIDATE_PIPELINEDESC_SHADER_READONLY_STORAGEBUFFERS, "sg_pipeline_desc.shader: only readonly storage buffer bindings allowed in render pipelines") \ _SG_LOGITEM_XMACRO(VALIDATE_PIPELINEDESC_BLENDOP_MINMAX_REQUIRES_BLENDFACTOR_ONE, "SG_BLENDOP_MIN/MAX requires all blend factors to be SG_BLENDFACTOR_ONE") \ _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_CANARY, "sg_attachments_desc not initialized") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_NO_ATTACHMENTS, "sg_attachments_desc no color or depth-stencil attachments") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_NO_ATTACHMENTS, "sg_attachments_desc no color, depth-stencil or storage attachments") \ _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_NO_CONT_COLOR_ATTS, "color attachments must occupy continuous slots") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_IMAGE, "pass attachment image is not valid") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_MIPLEVEL, "pass attachment mip level is bigger than image has mipmaps") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_FACE, "pass attachment image is cubemap, but face index is too big") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_LAYER, "pass attachment image is array texture, but layer index is too big") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_SLICE, "pass attachment image is 3d texture, but slice value is too big") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_IMAGE_NO_RT, "pass attachment image must be have render_target=true") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_COLOR_INV_PIXELFORMAT, "pass color-attachment images must be renderable color pixel format") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_INV_PIXELFORMAT, "pass depth-attachment image must be depth or depth-stencil pixel format") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_IMAGE_SIZES, "all pass attachments must have the same size") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_IMAGE_SAMPLE_COUNTS, "all pass attachments must have the same sample count") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_COLOR_IMAGE_MSAA, "pass resolve attachments must have a color attachment image with sample count > 1") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE, "pass resolve attachment image not valid") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_COLOR_IMAGE, "color attachment image is not valid") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_COLOR_MIPLEVEL, "color attachment mip level is higher than number of mipmaps in image") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_COLOR_FACE, "color attachment image is cubemap, but face index is too big") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_COLOR_LAYER, "color attachment image is array texture, but layer index is too big") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_COLOR_SLICE, "color attachment image is 3d texture, but slice value is too big") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_COLOR_IMAGE_NO_RENDERATTACHMENT, "color attachment images must be sg_image_desc.usage.render_attachment=true") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_COLOR_INV_PIXELFORMAT, "color attachment images must be renderable color pixel format") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_IMAGE_SIZES, "all color and depth attachment images must have the same size") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_IMAGE_SAMPLE_COUNTS, "all color and depth attachment images must have the same sample count") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_COLOR_IMAGE_MSAA, "resolve attachments must have a color attachment image with sample count > 1") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE, "resolve attachment image not valid") \ _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_SAMPLE_COUNT, "pass resolve attachment image sample count must be 1") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_MIPLEVEL, "pass resolve attachment mip level is bigger than image has mipmaps") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_FACE, "pass resolve attachment is cubemap, but face index is too big") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_LAYER, "pass resolve attachment is array texture, but layer index is too big") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_SLICE, "pass resolve attachment is 3d texture, but slice value is too big") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_NO_RT, "pass resolve attachment image must have render_target=true") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_SIZES, "pass resolve attachment size must match color attachment image size") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_FORMAT, "pass resolve attachment pixel format must match color attachment pixel format") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE, "pass depth attachment image is not valid") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_MIPLEVEL, "pass depth attachment mip level is bigger than image has mipmaps") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_FACE, "pass depth attachment image is cubemap, but face index is too big") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_LAYER, "pass depth attachment image is array texture, but layer index is too big") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_SLICE, "pass depth attachment image is 3d texture, but slice value is too big") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_NO_RT, "pass depth attachment image must be have render_target=true") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_SIZES, "pass depth attachment image size must match color attachment image size") \ - _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_SAMPLE_COUNT, "pass depth attachment sample count must match color attachment sample count") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_MIPLEVEL, "resolve attachment mip level is higher than number of mipmaps in image") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_FACE, "resolve attachment is cubemap, but face index is too big") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_LAYER, "resolve attachment is array texture, but layer index is too big") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_SLICE, "resolve attachment is 3d texture, but slice value is too big") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_NO_RT, "resolve attachment image must have render_target=true") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_SIZES, "resolve attachment size must match color attachment image size") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_FORMAT, "resolve attachment pixel format must match color attachment pixel format") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_INV_PIXELFORMAT, "depth attachment image must be depth or depth-stencil pixel format") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE, "depth attachment image is not valid") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_MIPLEVEL, "depth attachment mip level is higher than number of mipmaps in image") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_FACE, "depth attachment image is cubemap, but face index is too big") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_LAYER, "depth attachment image is array texture, but layer index is too big") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_SLICE, "depth attachment image is 3d texture, but slice value is too big") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_NO_RENDERATTACHMENT, "depth attachment image must be sg_image_desc.usage.render_attachment=true") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_SIZES, "depth attachment image size must match color attachment image size") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_SAMPLE_COUNT, "depth attachment sample count must match color attachment sample count") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_STORAGE_IMAGE, "storage attachment image is not valid") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_STORAGE_MIPLEVEL, "storage attachment mip level is higher than number of mipmaps in image") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_STORAGE_FACE, "storage attachment image is cubemap, but face index is too big") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_STORAGE_LAYER, "storage attachment image is array texture, but layer index is too big") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_STORAGE_SLICE, "storage attachment image is 3d texture, but slice value is too big") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_STORAGE_IMAGE_NO_STORAGEATTACHMENT, "storage attachment images must be sg_image_desc.usage.storage_attachment=true") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_STORAGE_INV_PIXELFORMAT, "storage attachment pixel format must have .compute_readwrite or .compute_writeonly capabilities") \ + _SG_LOGITEM_XMACRO(VALIDATE_ATTACHMENTSDESC_RENDER_VS_STORAGE_ATTACHMENTS, "cannot use color/depth and storage attachment images on the same sg_attachments object") \ _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_CANARY, "sg_begin_pass: pass struct not initialized") \ - _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_EXPECT_NO_ATTACHMENTS, "sg_begin_pass: compute passes cannot have attachments") \ _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_ATTACHMENTS_EXISTS, "sg_begin_pass: attachments object no longer alive") \ _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_ATTACHMENTS_VALID, "sg_begin_pass: attachments object not in resource state VALID") \ + _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_COMPUTEPASS_STORAGE_ATTACHMENTS_ONLY, "sg_begin_pass: only storage attachments allowed on compute pass") \ + _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_RENDERPASS_RENDER_ATTACHMENTS_ONLY, "sg_begin_pass: a render pass cannot have storage attachments") \ _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_COLOR_ATTACHMENT_IMAGE, "sg_begin_pass: one or more color attachment images are not valid") \ _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_RESOLVE_ATTACHMENT_IMAGE, "sg_begin_pass: one or more resolve attachment images are not valid") \ _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_DEPTHSTENCIL_ATTACHMENT_IMAGE, "sg_begin_pass: one or more depth-stencil attachment images are not valid") \ + _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_STORAGE_ATTACHMENT_IMAGE, "sg_begin_pass: one or more storage attachment images are not valid") \ _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_SWAPCHAIN_EXPECT_WIDTH, "sg_begin_pass: expected pass.swapchain.width > 0") \ _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_SWAPCHAIN_EXPECT_WIDTH_NOTSET, "sg_begin_pass: expected pass.swapchain.width == 0") \ _SG_LOGITEM_XMACRO(VALIDATE_BEGINPASS_SWAPCHAIN_EXPECT_HEIGHT, "sg_begin_pass: expected pass.swapchain.height > 0") \ @@ -4211,6 +4396,11 @@ typedef struct sg_frame_stats { _SG_LOGITEM_XMACRO(VALIDATE_APIP_COLOR_FORMAT, "sg_apply_pipeline: pipeline color attachment pixel format doesn't match pass color attachment pixel format") \ _SG_LOGITEM_XMACRO(VALIDATE_APIP_DEPTH_FORMAT, "sg_apply_pipeline: pipeline depth pixel_format doesn't match pass depth attachment pixel format") \ _SG_LOGITEM_XMACRO(VALIDATE_APIP_SAMPLE_COUNT, "sg_apply_pipeline: pipeline MSAA sample count doesn't match render pass attachment sample count") \ + _SG_LOGITEM_XMACRO(VALIDATE_APIP_EXPECTED_STORAGE_ATTACHMENT_IMAGE, "sg_apply_pipeline: shader expects storage image binding but compute pass doesn't have storage attachment image at expected bind slot") \ + _SG_LOGITEM_XMACRO(VALIDATE_APIP_STORAGE_ATTACHMENT_IMAGE_EXISTS, "sg_apply_pipeline: compute pass storage image attachment no longer exists") \ + _SG_LOGITEM_XMACRO(VALIDATE_APIP_STORAGE_ATTACHMENT_IMAGE_VALID, "sg_apply_pipeline: compute pass storage image attachment is not in valid state") \ + _SG_LOGITEM_XMACRO(VALIDATE_APIP_STORAGE_ATTACHMENT_PIXELFORMAT, "sg_apply_pipeline: compute pass storage image attachment pixel format doesn't match sg_shader_desc.storage_images[].access_format") \ + _SG_LOGITEM_XMACRO(VALIDATE_APIP_STORAGE_ATTACHMENT_IMAGE_TYPE, "sg_apply_pipeline: compute pass storage image attachment image type doesn't match sg_shader_desc.storage_images[].image_type") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_PASS_EXPECTED, "sg_apply_bindings: must be called in a pass") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_EMPTY_BINDINGS, "sg_apply_bindings: the provided sg_bindings struct is empty") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_PIPELINE, "sg_apply_bindings: must be called after sg_apply_pipeline") \ @@ -4220,12 +4410,12 @@ typedef struct sg_frame_stats { _SG_LOGITEM_XMACRO(VALIDATE_ABND_COMPUTE_EXPECTED_NO_IB, "sg_apply_bindings: index buffer binding not allowed in compute pass") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_EXPECTED_VB, "sg_apply_bindings: vertex buffer binding is missing or buffer handle is invalid") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_VB_EXISTS, "sg_apply_bindings: vertex buffer no longer alive") \ - _SG_LOGITEM_XMACRO(VALIDATE_ABND_VB_TYPE, "sg_apply_bindings: buffer in vertex buffer slot is not a SG_BUFFERTYPE_VERTEXBUFFER") \ + _SG_LOGITEM_XMACRO(VALIDATE_ABND_VB_TYPE, "sg_apply_bindings: buffer in vertex buffer slot doesn't have vertex buffer usage (sg_buffer_desc.usage.storage_buffer)") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_VB_OVERFLOW, "sg_apply_bindings: buffer in vertex buffer slot is overflown") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_NO_IB, "sg_apply_bindings: pipeline object defines indexed rendering, but no index buffer provided") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_IB, "sg_apply_bindings: pipeline object defines non-indexed rendering, but index buffer provided") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_IB_EXISTS, "sg_apply_bindings: index buffer no longer alive") \ - _SG_LOGITEM_XMACRO(VALIDATE_ABND_IB_TYPE, "sg_apply_bindings: buffer in index buffer slot is not a SG_BUFFERTYPE_INDEXBUFFER") \ + _SG_LOGITEM_XMACRO(VALIDATE_ABND_IB_TYPE, "sg_apply_bindings: buffer in index buffer slot doesn't have index buffer usage (sg_buffer_desc.usage.index_buffer)") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_IB_OVERFLOW, "sg_apply_bindings: buffer in index buffer slot is overflown") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_EXPECTED_IMAGE_BINDING, "sg_apply_bindings: image binding is missing or the image handle is invalid") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_IMG_EXISTS, "sg_apply_bindings: bound image no longer alive") \ @@ -4241,8 +4431,12 @@ typedef struct sg_frame_stats { _SG_LOGITEM_XMACRO(VALIDATE_ABND_SMP_EXISTS, "sg_apply_bindings: bound sampler no longer alive") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_EXPECTED_STORAGEBUFFER_BINDING, "sg_apply_bindings: storage buffer binding is missing or the buffer handle is invalid") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_STORAGEBUFFER_EXISTS, "sg_apply_bindings: bound storage buffer no longer alive") \ - _SG_LOGITEM_XMACRO(VALIDATE_ABND_STORAGEBUFFER_BINDING_BUFFERTYPE, "sg_apply_bindings: buffer bound to storage buffer slot is not of type storage buffer") \ + _SG_LOGITEM_XMACRO(VALIDATE_ABND_STORAGEBUFFER_BINDING_BUFFERTYPE, "sg_apply_bindings: buffer bound to storage buffer slot doesn't have storage buffer usage (sg_buffer_desc.usage.storage_buffer)") \ _SG_LOGITEM_XMACRO(VALIDATE_ABND_STORAGEBUFFER_READWRITE_IMMUTABLE, "sg_apply_bindings: storage buffers bound as read/write must have usage immutable") \ + _SG_LOGITEM_XMACRO(VALIDATE_ABND_IMAGE_BINDING_VS_DEPTHSTENCIL_ATTACHMENT, "sg_apply_bindings: cannot bind image in the same pass it is used as depth-stencil attachment") \ + _SG_LOGITEM_XMACRO(VALIDATE_ABND_IMAGE_BINDING_VS_COLOR_ATTACHMENT, "sg_apply_bindings: cannot bind image in the same pass it is used as color attachment") \ + _SG_LOGITEM_XMACRO(VALIDATE_ABND_IMAGE_BINDING_VS_RESOLVE_ATTACHMENT, "sg_apply_bindings: cannot bind image in the same pass it is used as resolve attachment") \ + _SG_LOGITEM_XMACRO(VALIDATE_ABND_IMAGE_BINDING_VS_STORAGE_ATTACHMENT, "sg_apply_bindings: cannot bind image in the same pass it is used as storage attachment") \ _SG_LOGITEM_XMACRO(VALIDATE_AU_PASS_EXPECTED, "sg_apply_uniforms: must be called in a pass") \ _SG_LOGITEM_XMACRO(VALIDATE_AU_NO_PIPELINE, "sg_apply_uniforms: must be called after sg_apply_pipeline()") \ _SG_LOGITEM_XMACRO(VALIDATE_AU_NO_UNIFORMBLOCK_AT_SLOT, "sg_apply_uniforms: no uniform block declaration at this shader stage UB slot") \ @@ -4546,15 +4740,14 @@ SOKOL_GFX_API_DECL sg_pipeline_desc sg_query_pipeline_defaults(const sg_pipeline SOKOL_GFX_API_DECL sg_attachments_desc sg_query_attachments_defaults(const sg_attachments_desc* desc); // assorted query functions SOKOL_GFX_API_DECL size_t sg_query_buffer_size(sg_buffer buf); -SOKOL_GFX_API_DECL sg_buffer_type sg_query_buffer_type(sg_buffer buf); -SOKOL_GFX_API_DECL sg_usage sg_query_buffer_usage(sg_buffer buf); +SOKOL_GFX_API_DECL sg_buffer_usage sg_query_buffer_usage(sg_buffer buf); SOKOL_GFX_API_DECL sg_image_type sg_query_image_type(sg_image img); SOKOL_GFX_API_DECL int sg_query_image_width(sg_image img); SOKOL_GFX_API_DECL int sg_query_image_height(sg_image img); SOKOL_GFX_API_DECL int sg_query_image_num_slices(sg_image img); SOKOL_GFX_API_DECL int sg_query_image_num_mipmaps(sg_image img); SOKOL_GFX_API_DECL sg_pixel_format sg_query_image_pixelformat(sg_image img); -SOKOL_GFX_API_DECL sg_usage sg_query_image_usage(sg_image img); +SOKOL_GFX_API_DECL sg_image_usage sg_query_image_usage(sg_image img); SOKOL_GFX_API_DECL int sg_query_image_sample_count(sg_image img); // separate resource allocation and initialization (for async setup) @@ -4955,7 +5148,8 @@ inline int sg_append_buffer(sg_buffer buf_id, const sg_range& data) { return sg_ // include platform specific GL headers (or on Win32: use an embedded GL loader) #if !defined(SOKOL_EXTERNAL_GL_LOADER) #if defined(_WIN32) - #if defined(SOKOL_GLCORE) && !defined(SOKOL_EXTERNAL_GL_LOADER) + #if defined(SOKOL_GLCORE) + #define _SOKOL_USE_WIN32_GL_LOADER (1) #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif @@ -4963,9 +5157,9 @@ inline int sg_append_buffer(sg_buffer buf_id, const sg_range& data) { return sg_ #define NOMINMAX #endif #include - #define _SOKOL_USE_WIN32_GL_LOADER (1) #pragma comment (lib, "kernel32") // GetProcAddress() #define _SOKOL_GL_HAS_COMPUTE (1) + #define _SOKOL_GL_HAS_TEXSTORAGE (1) #endif #elif defined(__APPLE__) #include @@ -4977,16 +5171,18 @@ inline int sg_append_buffer(sg_buffer buf_id, const sg_range& data) { return sg_ #else #include #include + #define _SOKOL_GL_HAS_TEXSTORAGE (1) #endif #elif defined(__EMSCRIPTEN__) #if defined(SOKOL_GLES3) #include + #define _SOKOL_GL_HAS_TEXSTORAGE (1) #endif #elif defined(__ANDROID__) - #define _SOKOL_GL_HAS_COMPUTE (1) #include - #elif defined(__linux__) || defined(__unix__) #define _SOKOL_GL_HAS_COMPUTE (1) + #define _SOKOL_GL_HAS_TEXSTORAGE (1) + #elif defined(__linux__) || defined(__unix__) #if defined(SOKOL_GLCORE) #define GL_GLEXT_PROTOTYPES #include @@ -4994,6 +5190,8 @@ inline int sg_append_buffer(sg_buffer buf_id, const sg_range& data) { return sg_ #include #include #endif + #define _SOKOL_GL_HAS_COMPUTE (1) + #define _SOKOL_GL_HAS_TEXSTORAGE (1) #endif #endif @@ -5250,8 +5448,14 @@ inline int sg_append_buffer(sg_buffer buf_id, const sg_range& data) { return sg_ #define GL_TEXTURE_2D_MULTISAMPLE 0x9100 #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 #define GL_SHADER_STORAGE_BARRIER_BIT 0x2000 + #define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 + #define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 + #define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 + #define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 #define GL_MIN 0x8007 #define GL_MAX 0x8008 + #define GL_WRITE_ONLY 0x88B9 + #define GL_READ_WRITE 0x88BA #endif #ifndef GL_UNSIGNED_INT_2_10_10_10_REV @@ -5461,8 +5665,7 @@ typedef struct { uint32_t append_frame_index; int num_slots; int active_slot; - sg_buffer_type type; - sg_usage usage; + sg_buffer_usage usage; } _sg_buffer_common_t; _SOKOL_PRIVATE void _sg_buffer_common_init(_sg_buffer_common_t* cmn, const sg_buffer_desc* desc) { @@ -5471,9 +5674,8 @@ _SOKOL_PRIVATE void _sg_buffer_common_init(_sg_buffer_common_t* cmn, const sg_bu cmn->append_overflow = false; cmn->update_frame_index = 0; cmn->append_frame_index = 0; - cmn->num_slots = (desc->usage == SG_USAGE_IMMUTABLE) ? 1 : SG_NUM_INFLIGHT_FRAMES; + cmn->num_slots = desc->usage.immutable ? 1 : SG_NUM_INFLIGHT_FRAMES; cmn->active_slot = 0; - cmn->type = desc->type; cmn->usage = desc->usage; } @@ -5482,22 +5684,20 @@ typedef struct { int num_slots; int active_slot; sg_image_type type; - bool render_target; int width; int height; int num_slices; int num_mipmaps; - sg_usage usage; + sg_image_usage usage; sg_pixel_format pixel_format; int sample_count; } _sg_image_common_t; _SOKOL_PRIVATE void _sg_image_common_init(_sg_image_common_t* cmn, const sg_image_desc* desc) { cmn->upd_frame_index = 0; - cmn->num_slots = (desc->usage == SG_USAGE_IMMUTABLE) ? 1 : SG_NUM_INFLIGHT_FRAMES; + cmn->num_slots = desc->usage.immutable ? 1 : SG_NUM_INFLIGHT_FRAMES; cmn->active_slot = 0; cmn->type = desc->type; - cmn->render_target = desc->render_target; cmn->width = desc->width; cmn->height = desc->height; cmn->num_slices = desc->num_slices; @@ -5549,6 +5749,13 @@ typedef struct { bool readonly; } _sg_shader_storage_buffer_t; +typedef struct { + sg_shader_stage stage; + sg_image_type image_type; + sg_pixel_format access_format; + bool writeonly; +} _sg_shader_storage_image_t; + typedef struct { sg_shader_stage stage; sg_image_type image_type; @@ -5577,6 +5784,7 @@ typedef struct { _sg_shader_image_t images[SG_MAX_IMAGE_BINDSLOTS]; _sg_shader_sampler_t samplers[SG_MAX_SAMPLER_BINDSLOTS]; _sg_shader_image_sampler_t image_samplers[SG_MAX_IMAGE_SAMPLER_PAIRS]; + _sg_shader_storage_image_t storage_images[SG_MAX_STORAGE_ATTACHMENTS]; } _sg_shader_common_t; _SOKOL_PRIVATE void _sg_shader_common_init(_sg_shader_common_t* cmn, const sg_shader_desc* desc) { @@ -5636,6 +5844,16 @@ _SOKOL_PRIVATE void _sg_shader_common_init(_sg_shader_common_t* cmn, const sg_sh dst->sampler_slot = src->sampler_slot; } } + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + const sg_shader_storage_image* src = &desc->storage_images[i]; + _sg_shader_storage_image_t* dst = &cmn->storage_images[i]; + if (src->stage != SG_SHADERSTAGE_NONE) { + dst->stage = src->stage; + dst->image_type = src->image_type; + dst->access_format = src->access_format; + dst->writeonly = src->writeonly; + } + } } typedef struct { @@ -5704,9 +5922,12 @@ typedef struct { int width; int height; int num_colors; + bool has_render_attachments; + bool has_storage_attachments; _sg_attachment_common_t colors[SG_MAX_COLOR_ATTACHMENTS]; _sg_attachment_common_t resolves[SG_MAX_COLOR_ATTACHMENTS]; _sg_attachment_common_t depth_stencil; + _sg_attachment_common_t storages[SG_MAX_STORAGE_ATTACHMENTS]; } _sg_attachments_common_t; _SOKOL_PRIVATE void _sg_attachment_common_init(_sg_attachment_common_t* cmn, const sg_attachment_desc* desc) { @@ -5716,18 +5937,28 @@ _SOKOL_PRIVATE void _sg_attachment_common_init(_sg_attachment_common_t* cmn, con } _SOKOL_PRIVATE void _sg_attachments_common_init(_sg_attachments_common_t* cmn, const sg_attachments_desc* desc, int width, int height) { - SOKOL_ASSERT((width > 0) && (height > 0)); + // NOTE: width/height will be 0 for storage image attachments cmn->width = width; cmn->height = height; - for (int i = 0; i < SG_MAX_COLOR_ATTACHMENTS; i++) { + for (size_t i = 0; i < SG_MAX_COLOR_ATTACHMENTS; i++) { if (desc->colors[i].image.id != SG_INVALID_ID) { cmn->num_colors++; _sg_attachment_common_init(&cmn->colors[i], &desc->colors[i]); _sg_attachment_common_init(&cmn->resolves[i], &desc->resolves[i]); + cmn->has_render_attachments = true; } } if (desc->depth_stencil.image.id != SG_INVALID_ID) { _sg_attachment_common_init(&cmn->depth_stencil, &desc->depth_stencil); + cmn->has_render_attachments = true; + } + // NOTE: storage attachment slots may be non-continuous, + // so a 'num_storages' doesn't make sense + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (desc->storages[i].image.id != SG_INVALID_ID) { + cmn->has_storage_attachments = true; + _sg_attachment_common_init(&cmn->storages[i], &desc->storages[i]); + } } } @@ -5774,19 +6005,27 @@ typedef struct _sg_attachments_s { _sg_dummy_attachment_t colors[SG_MAX_COLOR_ATTACHMENTS]; _sg_dummy_attachment_t resolves[SG_MAX_COLOR_ATTACHMENTS]; _sg_dummy_attachment_t depth_stencil; + _sg_dummy_attachment_t storages[SG_MAX_STORAGE_ATTACHMENTS]; } dmy; } _sg_dummy_attachments_t; typedef _sg_dummy_attachments_t _sg_attachments_t; #elif defined(_SOKOL_ANY_GL) +typedef enum { + _SG_GL_GPUDIRTY_VERTEXBUFFER = (1<<0), + _SG_GL_GPUDIRTY_INDEXBUFFER = (1<<1), + _SG_GL_GPUDIRTY_STORAGEBUFFER = (1<<2), + _SG_GL_GPUDIRTY_BUFFER_ALL = _SG_GL_GPUDIRTY_VERTEXBUFFER | _SG_GL_GPUDIRTY_INDEXBUFFER | _SG_GL_GPUDIRTY_STORAGEBUFFER, +} _sg_gl_gpudirty_t; + typedef struct _sg_buffer_s { _sg_slot_t slot; _sg_buffer_common_t cmn; struct { GLuint buf[SG_NUM_INFLIGHT_FRAMES]; bool injected; // if true, external buffers were injected with sg_buffer_desc.gl_buffers - bool gpu_dirty; // true if modified by GPU shader but memory barrier hasn't been issued yet + uint8_t gpu_dirty_flags; // combination of _sg_gl_gpudirty_t flags } gl; } _sg_gl_buffer_t; typedef _sg_gl_buffer_t _sg_buffer_t; @@ -5837,6 +6076,7 @@ typedef struct _sg_shader_s { _sg_gl_shader_attr_t attrs[SG_MAX_VERTEX_ATTRIBUTES]; _sg_gl_uniform_block_t uniform_blocks[SG_MAX_UNIFORMBLOCK_BINDSLOTS]; uint8_t sbuf_binding[SG_MAX_STORAGEBUFFER_BINDSLOTS]; + uint8_t simg_binding[SG_MAX_STORAGE_ATTACHMENTS]; int8_t tex_slot[SG_MAX_IMAGE_SAMPLER_PAIRS]; // GL texture unit index } gl; } _sg_gl_shader_t; @@ -5884,6 +6124,7 @@ typedef struct _sg_attachments_s { _sg_gl_attachment_t colors[SG_MAX_COLOR_ATTACHMENTS]; _sg_gl_attachment_t resolves[SG_MAX_COLOR_ATTACHMENTS]; _sg_gl_attachment_t depth_stencil; + _sg_gl_attachment_t storages[SG_MAX_STORAGE_ATTACHMENTS]; GLuint msaa_resolve_framebuffer[SG_MAX_COLOR_ATTACHMENTS]; } gl; } _sg_gl_attachments_t; @@ -5901,6 +6142,7 @@ typedef struct { } _sg_gl_cache_texture_sampler_bind_slot; #define _SG_GL_MAX_SBUF_BINDINGS (SG_MAX_STORAGEBUFFER_BINDSLOTS) +#define _SG_GL_MAX_SIMG_BINDINGS (SG_MAX_STORAGE_ATTACHMENTS) #define _SG_GL_MAX_IMG_SMP_BINDINGS (SG_MAX_IMAGE_SAMPLER_PAIRS) typedef struct { sg_depth_state depth; @@ -5988,7 +6230,7 @@ typedef struct { #define _SG_D3D11_MAX_STAGE_UB_BINDINGS (SG_MAX_UNIFORMBLOCK_BINDSLOTS) #define _SG_D3D11_MAX_STAGE_SRV_BINDINGS (SG_MAX_IMAGE_BINDSLOTS + SG_MAX_STORAGEBUFFER_BINDSLOTS) -#define _SG_D3D11_MAX_STAGE_UAV_BINDINGS (SG_MAX_STORAGEBUFFER_BINDSLOTS) +#define _SG_D3D11_MAX_STAGE_UAV_BINDINGS (SG_MAX_STORAGEBUFFER_BINDSLOTS + SG_MAX_STORAGE_ATTACHMENTS) #define _SG_D3D11_MAX_STAGE_SMP_BINDINGS (SG_MAX_SAMPLER_BINDSLOTS) typedef struct _sg_shader_s { @@ -6006,6 +6248,7 @@ typedef struct _sg_shader_s { uint8_t smp_register_s_n[SG_MAX_SAMPLER_BINDSLOTS]; uint8_t sbuf_register_t_n[SG_MAX_STORAGEBUFFER_BINDSLOTS]; uint8_t sbuf_register_u_n[SG_MAX_STORAGEBUFFER_BINDSLOTS]; + uint8_t simg_register_u_n[SG_MAX_STORAGE_ATTACHMENTS]; ID3D11Buffer* all_cbufs[SG_MAX_UNIFORMBLOCK_BINDSLOTS]; ID3D11Buffer* vs_cbufs[_SG_D3D11_MAX_STAGE_UB_BINDINGS]; ID3D11Buffer* fs_cbufs[_SG_D3D11_MAX_STAGE_UB_BINDINGS]; @@ -6036,6 +6279,7 @@ typedef struct { union { ID3D11RenderTargetView* rtv; ID3D11DepthStencilView* dsv; + ID3D11UnorderedAccessView* uav; } view; } _sg_d3d11_attachment_t; @@ -6046,6 +6290,7 @@ typedef struct _sg_attachments_s { _sg_d3d11_attachment_t colors[SG_MAX_COLOR_ATTACHMENTS]; _sg_d3d11_attachment_t resolves[SG_MAX_COLOR_ATTACHMENTS]; _sg_d3d11_attachment_t depth_stencil; + _sg_d3d11_attachment_t storages[SG_MAX_STORAGE_ATTACHMENTS]; } d3d11; } _sg_d3d11_attachments_t; typedef _sg_d3d11_attachments_t _sg_attachments_t; @@ -6138,6 +6383,7 @@ typedef struct _sg_shader_s { uint8_t img_texture_n[SG_MAX_IMAGE_BINDSLOTS]; uint8_t smp_sampler_n[SG_MAX_SAMPLER_BINDSLOTS]; uint8_t sbuf_buffer_n[SG_MAX_STORAGEBUFFER_BINDSLOTS]; + uint8_t simg_texture_n[SG_MAX_STORAGE_ATTACHMENTS]; } mtl; } _sg_mtl_shader_t; typedef _sg_mtl_shader_t _sg_shader_t; @@ -6172,6 +6418,8 @@ typedef struct _sg_attachments_s { _sg_mtl_attachment_t colors[SG_MAX_COLOR_ATTACHMENTS]; _sg_mtl_attachment_t resolves[SG_MAX_COLOR_ATTACHMENTS]; _sg_mtl_attachment_t depth_stencil; + _sg_mtl_attachment_t storages[SG_MAX_STORAGE_ATTACHMENTS]; + int storage_views[SG_MAX_STORAGE_ATTACHMENTS]; } mtl; } _sg_mtl_attachments_t; typedef _sg_mtl_attachments_t _sg_attachments_t; @@ -6180,7 +6428,7 @@ typedef _sg_mtl_attachments_t _sg_attachments_t; #define _SG_MTL_MAX_STAGE_UB_BINDINGS (SG_MAX_UNIFORMBLOCK_BINDSLOTS) #define _SG_MTL_MAX_STAGE_UB_SBUF_BINDINGS (_SG_MTL_MAX_STAGE_UB_BINDINGS + SG_MAX_STORAGEBUFFER_BINDSLOTS) #define _SG_MTL_MAX_STAGE_BUFFER_BINDINGS (_SG_MTL_MAX_STAGE_UB_SBUF_BINDINGS + SG_MAX_VERTEXBUFFER_BINDSLOTS) -#define _SG_MTL_MAX_STAGE_IMAGE_BINDINGS (SG_MAX_IMAGE_BINDSLOTS) +#define _SG_MTL_MAX_STAGE_TEXTURE_BINDINGS (SG_MAX_IMAGE_BINDSLOTS + SG_MAX_STORAGE_ATTACHMENTS) #define _SG_MTL_MAX_STAGE_SAMPLER_BINDINGS (SG_MAX_SAMPLER_BINDSLOTS) typedef struct { const _sg_pipeline_t* cur_pipeline; @@ -6189,15 +6437,19 @@ typedef struct { sg_buffer cur_indexbuffer_id; int cur_indexbuffer_offset; int cur_vs_buffer_offsets[_SG_MTL_MAX_STAGE_BUFFER_BINDINGS]; - sg_buffer cur_vs_buffer_ids[_SG_MTL_MAX_STAGE_BUFFER_BINDINGS]; - sg_buffer cur_fs_buffer_ids[_SG_MTL_MAX_STAGE_BUFFER_BINDINGS]; - sg_buffer cur_cs_buffer_ids[_SG_MTL_MAX_STAGE_BUFFER_BINDINGS]; - sg_image cur_vs_image_ids[_SG_MTL_MAX_STAGE_IMAGE_BINDINGS]; - sg_image cur_fs_image_ids[_SG_MTL_MAX_STAGE_IMAGE_BINDINGS]; - sg_image cur_cs_image_ids[_SG_MTL_MAX_STAGE_IMAGE_BINDINGS]; - sg_sampler cur_vs_sampler_ids[_SG_MTL_MAX_STAGE_SAMPLER_BINDINGS]; - sg_sampler cur_fs_sampler_ids[_SG_MTL_MAX_STAGE_SAMPLER_BINDINGS]; - sg_sampler cur_cs_sampler_ids[_SG_MTL_MAX_STAGE_SAMPLER_BINDINGS]; + uint32_t cur_vs_buffer_ids[_SG_MTL_MAX_STAGE_BUFFER_BINDINGS]; + uint32_t cur_fs_buffer_ids[_SG_MTL_MAX_STAGE_BUFFER_BINDINGS]; + uint32_t cur_cs_buffer_ids[_SG_MTL_MAX_STAGE_BUFFER_BINDINGS]; + uint32_t cur_vs_image_ids[_SG_MTL_MAX_STAGE_TEXTURE_BINDINGS]; + uint32_t cur_fs_image_ids[_SG_MTL_MAX_STAGE_TEXTURE_BINDINGS]; + uint32_t cur_vs_sampler_ids[_SG_MTL_MAX_STAGE_SAMPLER_BINDINGS]; + uint32_t cur_fs_sampler_ids[_SG_MTL_MAX_STAGE_SAMPLER_BINDINGS]; + uint32_t cur_cs_sampler_ids[_SG_MTL_MAX_STAGE_SAMPLER_BINDINGS]; + // NOTE: special case: uint64_t for storage images, because we need + // to differentiate between storage pass attachments and regular + // textures bound to compute stages (but both binding types live + // in the texture bind space in Metal) + uint64_t cur_cs_image_ids[_SG_MTL_MAX_STAGE_TEXTURE_BINDINGS]; } _sg_mtl_state_cache_t; typedef struct { @@ -6223,13 +6475,16 @@ typedef struct { #define _SG_WGPU_ROWPITCH_ALIGN (256) #define _SG_WGPU_MAX_UNIFORM_UPDATE_SIZE (1<<16) // also see WGPULimits.maxUniformBufferBindingSize -#define _SG_WGPU_NUM_BINDGROUPS (2) // 0: uniforms, 1: images, samplers, storage buffers +#define _SG_WGPU_MAX_BINDGROUPS (3) // 0: uniforms, 1: images, samplers, storage buffers, 2: storage images (only in compute passes) #define _SG_WGPU_UB_BINDGROUP_INDEX (0) #define _SG_WGPU_IMG_SMP_SBUF_BINDGROUP_INDEX (1) +#define _SG_WGPU_SIMG_BINDGROUP_INDEX (2) #define _SG_WGPU_MAX_UB_BINDGROUP_ENTRIES (SG_MAX_UNIFORMBLOCK_BINDSLOTS) #define _SG_WGPU_MAX_UB_BINDGROUP_BIND_SLOTS (2 * SG_MAX_UNIFORMBLOCK_BINDSLOTS) #define _SG_WGPU_MAX_IMG_SMP_SBUF_BINDGROUP_ENTRIES (SG_MAX_IMAGE_BINDSLOTS + SG_MAX_SAMPLER_BINDSLOTS + SG_MAX_STORAGEBUFFER_BINDSLOTS) #define _SG_WGPU_MAX_IMG_SMP_SBUF_BIND_SLOTS (128) +#define _SG_WGPU_MAX_SIMG_BIND_SLOTS (SG_MAX_STORAGE_ATTACHMENTS) +#define _SG_WGPU_MAX_SIMG_BINDGROUP_ENTRIES (SG_MAX_STORAGE_ATTACHMENTS) typedef struct _sg_buffer_s { _sg_slot_t slot; @@ -6274,6 +6529,7 @@ typedef struct _sg_shader_s { WGPUBindGroupLayout bgl_ub; WGPUBindGroup bg_ub; WGPUBindGroupLayout bgl_img_smp_sbuf; + WGPUBindGroupLayout bgl_simg; // a mapping of sokol-gfx bind slots to setBindGroup dynamic-offset-array indices uint8_t ub_num_dynoffsets; uint8_t ub_dynoffsets[SG_MAX_UNIFORMBLOCK_BINDSLOTS]; @@ -6282,6 +6538,7 @@ typedef struct _sg_shader_s { uint8_t img_grp1_bnd_n[SG_MAX_IMAGE_BINDSLOTS]; uint8_t smp_grp1_bnd_n[SG_MAX_SAMPLER_BINDSLOTS]; uint8_t sbuf_grp1_bnd_n[SG_MAX_STORAGEBUFFER_BINDSLOTS]; + uint8_t simg_grp2_bnd_n[SG_MAX_STORAGE_ATTACHMENTS]; } wgpu; } _sg_wgpu_shader_t; typedef _sg_wgpu_shader_t _sg_shader_t; @@ -6310,6 +6567,7 @@ typedef struct _sg_attachments_s { _sg_wgpu_attachment_t colors[SG_MAX_COLOR_ATTACHMENTS]; _sg_wgpu_attachment_t resolves[SG_MAX_COLOR_ATTACHMENTS]; _sg_wgpu_attachment_t depth_stencil; + _sg_wgpu_attachment_t storages[SG_MAX_STORAGE_ATTACHMENTS]; } wgpu; } _sg_wgpu_attachments_t; typedef _sg_wgpu_attachments_t _sg_attachments_t; @@ -6423,6 +6681,14 @@ typedef struct { sg_commit_listener* items; } _sg_commit_listeners_t; +// resolved pass attachments struct +typedef struct { + _sg_image_t* color_images[SG_MAX_COLOR_ATTACHMENTS]; + _sg_image_t* resolve_images[SG_MAX_COLOR_ATTACHMENTS]; + _sg_image_t* ds_image; + _sg_image_t* storage_images[SG_MAX_STORAGE_ATTACHMENTS]; +} _sg_attachments_ptrs_t; + // resolved resource bindings struct typedef struct { _sg_pipeline_t* pip; @@ -6433,7 +6699,8 @@ typedef struct { _sg_image_t* imgs[SG_MAX_IMAGE_BINDSLOTS]; _sg_sampler_t* smps[SG_MAX_SAMPLER_BINDSLOTS]; _sg_buffer_t* sbufs[SG_MAX_STORAGEBUFFER_BINDSLOTS]; -} _sg_bindings_t; + _sg_image_t* simgs[SG_MAX_STORAGE_ATTACHMENTS]; +} _sg_bindings_ptrs_t; typedef struct { bool sample; @@ -6442,6 +6709,8 @@ typedef struct { bool blend; bool msaa; bool depth; + bool read; + bool write; } _sg_pixelformat_info_t; typedef struct { @@ -6885,18 +7154,24 @@ _SOKOL_PRIVATE bool _sg_is_compressed_pixel_format(sg_pixel_format fmt) { } } -_SOKOL_PRIVATE bool _sg_is_valid_rendertarget_color_format(sg_pixel_format fmt) { +_SOKOL_PRIVATE bool _sg_is_valid_attachment_color_format(sg_pixel_format fmt) { const int fmt_index = (int) fmt; SOKOL_ASSERT((fmt_index >= 0) && (fmt_index < _SG_PIXELFORMAT_NUM)); return _sg.formats[fmt_index].render && !_sg.formats[fmt_index].depth; } -_SOKOL_PRIVATE bool _sg_is_valid_rendertarget_depth_format(sg_pixel_format fmt) { +_SOKOL_PRIVATE bool _sg_is_valid_attachment_depth_format(sg_pixel_format fmt) { const int fmt_index = (int) fmt; SOKOL_ASSERT((fmt_index >= 0) && (fmt_index < _SG_PIXELFORMAT_NUM)); return _sg.formats[fmt_index].render && _sg.formats[fmt_index].depth; } +_SOKOL_PRIVATE bool _sg_is_valid_attachment_storage_format(sg_pixel_format fmt) { + const int fmt_index = (int) fmt; + SOKOL_ASSERT((fmt_index >= 0) && (fmt_index < _SG_PIXELFORMAT_NUM)); + return _sg.formats[fmt_index].read || _sg.formats[fmt_index].write; +} + _SOKOL_PRIVATE bool _sg_is_depth_or_depth_stencil_format(sg_pixel_format fmt) { return (SG_PIXELFORMAT_DEPTH == fmt) || (SG_PIXELFORMAT_DEPTH_STENCIL == fmt); } @@ -7142,6 +7417,16 @@ _SOKOL_PRIVATE void _sg_pixelformat_sfbr(_sg_pixelformat_info_t* pfi) { pfi->render = true; } +_SOKOL_PRIVATE void _sg_pixelformat_compute_all(_sg_pixelformat_info_t* pfi) { + pfi->read = true; + pfi->write = true; +} + +_SOKOL_PRIVATE void _sg_pixelformat_compute_writeonly(_sg_pixelformat_info_t* pfi) { + pfi->read = false; + pfi->write = true; +} + _SOKOL_PRIVATE sg_pass_action _sg_pass_action_defaults(const sg_pass_action* action) { SOKOL_ASSERT(action); sg_pass_action res = *action; @@ -7266,33 +7551,36 @@ _SOKOL_PRIVATE void _sg_dummy_discard_pipeline(_sg_pipeline_t* pip) { _SOKOL_UNUSED(pip); } -_SOKOL_PRIVATE sg_resource_state _sg_dummy_create_attachments(_sg_attachments_t* atts, _sg_image_t** color_images, _sg_image_t** resolve_images, _sg_image_t* ds_img, const sg_attachments_desc* desc) { - SOKOL_ASSERT(atts && desc); - SOKOL_ASSERT(color_images && resolve_images); +_SOKOL_PRIVATE sg_resource_state _sg_dummy_create_attachments(_sg_attachments_t* atts, const _sg_attachments_ptrs_t* atts_ptrs, const sg_attachments_desc* desc) { + SOKOL_ASSERT(atts && atts_ptrs && desc); for (int i = 0; i < atts->cmn.num_colors; i++) { const sg_attachment_desc* color_desc = &desc->colors[i]; _SOKOL_UNUSED(color_desc); SOKOL_ASSERT(color_desc->image.id != SG_INVALID_ID); SOKOL_ASSERT(0 == atts->dmy.colors[i].image); - SOKOL_ASSERT(color_images[i] && (color_images[i]->slot.id == color_desc->image.id)); - SOKOL_ASSERT(_sg_is_valid_rendertarget_color_format(color_images[i]->cmn.pixel_format)); - atts->dmy.colors[i].image = color_images[i]; - + SOKOL_ASSERT(atts_ptrs->color_images[i]); + _sg_image_t* clr_img = atts_ptrs->color_images[i]; + SOKOL_ASSERT(clr_img->slot.id == color_desc->image.id); + SOKOL_ASSERT(_sg_is_valid_attachment_color_format(clr_img->cmn.pixel_format)); + atts->dmy.colors[i].image = clr_img; const sg_attachment_desc* resolve_desc = &desc->resolves[i]; if (resolve_desc->image.id != SG_INVALID_ID) { SOKOL_ASSERT(0 == atts->dmy.resolves[i].image); - SOKOL_ASSERT(resolve_images[i] && (resolve_images[i]->slot.id == resolve_desc->image.id)); - SOKOL_ASSERT(color_images[i] && (color_images[i]->cmn.pixel_format == resolve_images[i]->cmn.pixel_format)); - atts->dmy.resolves[i].image = resolve_images[i]; + SOKOL_ASSERT(atts_ptrs->resolve_images[i]); + _sg_image_t* rsv_img = atts_ptrs->resolve_images[i]; + SOKOL_ASSERT(rsv_img->slot.id == resolve_desc->image.id); + SOKOL_ASSERT(clr_img->cmn.pixel_format == rsv_img->cmn.pixel_format); + atts->dmy.resolves[i].image = rsv_img; } } - SOKOL_ASSERT(0 == atts->dmy.depth_stencil.image); const sg_attachment_desc* ds_desc = &desc->depth_stencil; if (ds_desc->image.id != SG_INVALID_ID) { - SOKOL_ASSERT(ds_img && (ds_img->slot.id == ds_desc->image.id)); - SOKOL_ASSERT(_sg_is_valid_rendertarget_depth_format(ds_img->cmn.pixel_format)); + SOKOL_ASSERT(atts_ptrs->ds_image); + _sg_image_t* ds_img = atts_ptrs->ds_image; + SOKOL_ASSERT(ds_img->slot.id == ds_desc->image.id); + SOKOL_ASSERT(_sg_is_valid_attachment_depth_format(ds_img->cmn.pixel_format)); atts->dmy.depth_stencil.image = ds_img; } return SG_RESOURCESTATE_VALID; @@ -7318,6 +7606,11 @@ _SOKOL_PRIVATE _sg_image_t* _sg_dummy_attachments_ds_image(const _sg_attachments return atts->dmy.depth_stencil.image; } +_SOKOL_PRIVATE _sg_image_t* _sg_dummy_attachments_storage_image(const _sg_attachments_t* atts, int index) { + SOKOL_ASSERT(atts && (index >= 0) && (index < SG_MAX_COLOR_ATTACHMENTS)); + return atts->dmy.storages[index].image; +} + _SOKOL_PRIVATE void _sg_dummy_begin_pass(const sg_pass* pass) { SOKOL_ASSERT(pass); _SOKOL_UNUSED(pass); @@ -7352,7 +7645,7 @@ _SOKOL_PRIVATE void _sg_dummy_apply_pipeline(_sg_pipeline_t* pip) { _SOKOL_UNUSED(pip); } -_SOKOL_PRIVATE bool _sg_dummy_apply_bindings(_sg_bindings_t* bnd) { +_SOKOL_PRIVATE bool _sg_dummy_apply_bindings(_sg_bindings_ptrs_t* bnd) { SOKOL_ASSERT(bnd); SOKOL_ASSERT(bnd->pip); _SOKOL_UNUSED(bnd); @@ -7530,7 +7823,14 @@ _SOKOL_PRIVATE void _sg_dummy_update_image(_sg_image_t* img, const sg_image_data _SG_XMACRO(glTexImage2DMultisample, void, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)) \ _SG_XMACRO(glTexImage3DMultisample, void, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)) \ _SG_XMACRO(glDispatchCompute, void, (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)) \ - _SG_XMACRO(glMemoryBarrier, void, (GLbitfield barriers)) + _SG_XMACRO(glMemoryBarrier, void, (GLbitfield barriers)) \ + _SG_XMACRO(glBindImageTexture, void, (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)) \ + _SG_XMACRO(glTexStorage2DMultisample, void, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)) \ + _SG_XMACRO(glTexStorage2D, void, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ + _SG_XMACRO(glTexStorage3DMultisample, void, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)) \ + _SG_XMACRO(glTexStorage3D, void, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \ + _SG_XMACRO(glCompressedTexSubImage2D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)) \ + _SG_XMACRO(glCompressedTexSubImage3D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)) // generate GL function pointer typedefs #define _SG_XMACRO(name, ret, args) typedef ret (GL_APIENTRY* PFN_ ## name) args; @@ -7573,12 +7873,20 @@ _SOKOL_PRIVATE void _sg_gl_unload_opengl(void) { #endif // _SOKOL_USE_WIN32_GL_LOADER //-- type translation ---------------------------------------------------------- -_SOKOL_PRIVATE GLenum _sg_gl_buffer_target(sg_buffer_type t) { - switch (t) { - case SG_BUFFERTYPE_VERTEXBUFFER: return GL_ARRAY_BUFFER; - case SG_BUFFERTYPE_INDEXBUFFER: return GL_ELEMENT_ARRAY_BUFFER; - case SG_BUFFERTYPE_STORAGEBUFFER: return GL_SHADER_STORAGE_BUFFER; - default: SOKOL_UNREACHABLE; return 0; +_SOKOL_PRIVATE GLenum _sg_gl_buffer_target(const sg_buffer_usage* usg) { + // NOTE: the buffer target returned here is only used for the bind point + // to copy data into the buffer, expect for WebGL2, the bind point doesn't + // need to match the later usage of the buffer (but because of the WebGL2 + // restriction we cannot simply select a random bind point, because in WebGL2 + // a buffer cannot 'switch' bind points later. + if (usg->vertex_buffer) { + return GL_ARRAY_BUFFER; + } else if (usg->index_buffer) { + return GL_ELEMENT_ARRAY_BUFFER; + } else if (usg->storage_buffer) { + return GL_SHADER_STORAGE_BUFFER; + } else { + SOKOL_UNREACHABLE; return 0; } } @@ -7612,12 +7920,15 @@ _SOKOL_PRIVATE GLenum _sg_gl_texture_target(sg_image_type t, int sample_count) { #endif } -_SOKOL_PRIVATE GLenum _sg_gl_usage(sg_usage u) { - switch (u) { - case SG_USAGE_IMMUTABLE: return GL_STATIC_DRAW; - case SG_USAGE_DYNAMIC: return GL_DYNAMIC_DRAW; - case SG_USAGE_STREAM: return GL_STREAM_DRAW; - default: SOKOL_UNREACHABLE; return 0; +_SOKOL_PRIVATE GLenum _sg_gl_buffer_usage(const sg_buffer_usage* usg) { + if (usg->immutable) { + return GL_STATIC_DRAW; + } else if (usg->dynamic_update) { + return GL_DYNAMIC_DRAW; + } else if (usg->stream_update) { + return GL_STREAM_DRAW; + } else { + SOKOL_UNREACHABLE; return 0; } } @@ -8228,7 +8539,27 @@ _SOKOL_PRIVATE void _sg_gl_init_pixelformats_etc2(void) { _SOKOL_PRIVATE void _sg_gl_init_pixelformats_astc(void) { _sg_pixelformat_sf(&_sg.formats[SG_PIXELFORMAT_ASTC_4x4_RGBA]); _sg_pixelformat_sf(&_sg.formats[SG_PIXELFORMAT_ASTC_4x4_SRGBA]); - } +} + +_SOKOL_PRIVATE void _sg_gl_init_pixelformats_compute(void) { + // using Vulkan's conservative default caps (see: https://github.com/gpuweb/gpuweb/issues/513) + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA8]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA8SN]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA8UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA8SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA16UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA16SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA16F]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_R32UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_R32SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_R32F]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RG32UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RG32SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RG32F]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA32UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA32SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA32F]); +} _SOKOL_PRIVATE void _sg_gl_init_limits(void) { _SG_GL_CHECK_ERROR(); @@ -8341,6 +8672,9 @@ _SOKOL_PRIVATE void _sg_gl_init_caps_glcore(void) { if (has_astc) { _sg_gl_init_pixelformats_astc(); } + if (_sg.features.compute) { + _sg_gl_init_pixelformats_compute(); + } } #endif @@ -8359,6 +8693,11 @@ _SOKOL_PRIVATE void _sg_gl_init_caps_gles3(void) { _sg.features.mrt_independent_write_mask = false; _sg.features.compute = version >= 310; _sg.features.msaa_image_bindings = false; + #if defined(__EMSCRIPTEN__) + _sg.features.separate_buffer_types = true; + #else + _sg.features.separate_buffer_types = false; + #endif bool has_s3tc = false; // BC1..BC3 bool has_rgtc = false; // BC4 and BC5 @@ -8436,6 +8775,9 @@ _SOKOL_PRIVATE void _sg_gl_init_caps_gles3(void) { if (has_astc) { _sg_gl_init_pixelformats_astc(); } + if (_sg.features.compute) { + _sg_gl_init_pixelformats_compute(); + } } #endif @@ -8842,8 +9184,8 @@ _SOKOL_PRIVATE sg_resource_state _sg_gl_create_buffer(_sg_buffer_t* buf, const s SOKOL_ASSERT(buf && desc); _SG_GL_CHECK_ERROR(); buf->gl.injected = (0 != desc->gl_buffers[0]); - const GLenum gl_target = _sg_gl_buffer_target(buf->cmn.type); - const GLenum gl_usage = _sg_gl_usage(buf->cmn.usage); + const GLenum gl_target = _sg_gl_buffer_target(&buf->cmn.usage); + const GLenum gl_usage = _sg_gl_buffer_usage(&buf->cmn.usage); for (int slot = 0; slot < buf->cmn.num_slots; slot++) { GLuint gl_buf = 0; if (buf->gl.injected) { @@ -8855,17 +9197,8 @@ _SOKOL_PRIVATE sg_resource_state _sg_gl_create_buffer(_sg_buffer_t* buf, const s _sg_gl_cache_store_buffer_binding(gl_target); _sg_gl_cache_bind_buffer(gl_target, gl_buf); glBufferData(gl_target, buf->cmn.size, 0, gl_usage); - if (buf->cmn.usage == SG_USAGE_IMMUTABLE) { - if (desc->data.ptr) { - glBufferSubData(gl_target, 0, buf->cmn.size, desc->data.ptr); - } else { - // setup a zero-initialized buffer (don't explicitly need to do this on WebGL) - #if !defined(__EMSCRIPTEN__) - void* ptr = _sg_malloc_clear((size_t)buf->cmn.size); - glBufferSubData(gl_target, 0, buf->cmn.size, ptr); - _sg_free(ptr); - #endif - } + if (desc->data.ptr) { + glBufferSubData(gl_target, 0, buf->cmn.size, desc->data.ptr); } _sg_gl_cache_restore_buffer_binding(gl_target); } @@ -8895,10 +9228,119 @@ _SOKOL_PRIVATE bool _sg_gl_supported_texture_format(sg_pixel_format fmt) { return _sg.formats[fmt_index].sample; } +_SOKOL_PRIVATE void _sg_gl_texstorage(const _sg_image_t* img) { + const GLenum tgt = img->gl.target; + const int num_mips = img->cmn.num_mipmaps; + #if defined(_SOKOL_GL_HAS_TEXSTORAGE) + const GLenum ifmt = _sg_gl_teximage_internal_format(img->cmn.pixel_format); + const bool msaa = img->cmn.sample_count > 1; + const int w = img->cmn.width; + const int h = img->cmn.height; + if ((SG_IMAGETYPE_2D == img->cmn.type) || (SG_IMAGETYPE_CUBE == img->cmn.type)) { + #if defined(SOKOL_GLCORE) + if (msaa) { + glTexStorage2DMultisample(tgt, img->cmn.sample_count, ifmt, w, h, GL_TRUE); + } else { + glTexStorage2D(tgt, num_mips, ifmt, w, h); + } + #else + SOKOL_ASSERT(!msaa); _SOKOL_UNUSED(msaa); + glTexStorage2D(tgt, num_mips, ifmt, w, h); + #endif + } else if ((SG_IMAGETYPE_3D == img->cmn.type) || (SG_IMAGETYPE_ARRAY == img->cmn.type)) { + const int depth = img->cmn.num_slices; + #if defined(SOKOL_GLCORE) + if (msaa) { + // NOTE: MSAA works only for array textures, not 3D textures + glTexStorage3DMultisample(tgt, img->cmn.sample_count, ifmt, w, h, depth, GL_TRUE); + } else { + glTexStorage3D(tgt, num_mips, ifmt, w, h, depth); + } + #else + SOKOL_ASSERT(!msaa); _SOKOL_UNUSED(msaa); + glTexStorage3D(tgt, num_mips, ifmt, w, h, depth); + #endif + } + #else + glTexParameteri(tgt, GL_TEXTURE_MAX_LEVEL, num_mips - 1); + #endif + _SG_GL_CHECK_ERROR(); +} + +_SOKOL_PRIVATE void _sg_gl_teximage(const _sg_image_t* img, GLenum tgt, int mip_index, int w, int h, int depth, const GLvoid* data_ptr, GLsizei data_size) { + const bool compressed = _sg_is_compressed_pixel_format(img->cmn.pixel_format); + #if defined(_SOKOL_GL_HAS_TEXSTORAGE) + if (data_ptr == 0) { + return; + } + SOKOL_ASSERT(img->cmn.sample_count == 1); + if ((SG_IMAGETYPE_2D == img->cmn.type) || (SG_IMAGETYPE_CUBE == img->cmn.type)) { + if (compressed) { + const GLenum ifmt = _sg_gl_teximage_internal_format(img->cmn.pixel_format); + glCompressedTexSubImage2D(tgt, mip_index, 0, 0, w, h, ifmt, data_size, data_ptr); + } else { + const GLenum type = _sg_gl_teximage_type(img->cmn.pixel_format); + const GLenum fmt = _sg_gl_teximage_format(img->cmn.pixel_format); + glTexSubImage2D(tgt, mip_index, 0, 0, w, h, fmt, type, data_ptr); + } + } else if ((SG_IMAGETYPE_3D == img->cmn.type) || (SG_IMAGETYPE_ARRAY == img->cmn.type)) { + if (compressed) { + const GLenum ifmt = _sg_gl_teximage_internal_format(img->cmn.pixel_format); + glCompressedTexSubImage3D(tgt, mip_index, 0, 0, 0, w, h, depth, ifmt, data_size, data_ptr); + } else { + const GLenum type = _sg_gl_teximage_type(img->cmn.pixel_format); + const GLenum fmt = _sg_gl_teximage_format(img->cmn.pixel_format); + glTexSubImage3D(tgt, mip_index, 0, 0, 0, w, h, depth, fmt, type, data_ptr); + } + } + #else + const GLenum ifmt = _sg_gl_teximage_internal_format(img->cmn.pixel_format); + const bool msaa = img->cmn.sample_count > 1; + if ((SG_IMAGETYPE_2D == img->cmn.type) || (SG_IMAGETYPE_CUBE == img->cmn.type)) { + if (compressed) { + SOKOL_ASSERT(!msaa); _SOKOL_UNUSED(msaa); + glCompressedTexImage2D(tgt, mip_index, ifmt, w, h, 0, data_size, data_ptr); + } else { + const GLenum type = _sg_gl_teximage_type(img->cmn.pixel_format); + const GLenum fmt = _sg_gl_teximage_format(img->cmn.pixel_format); + #if defined(SOKOL_GLCORE) + if (msaa) { + glTexImage2DMultisample(tgt, img->cmn.sample_count, (GLint)ifmt, w, h, GL_TRUE); + } else { + glTexImage2D(tgt, mip_index, (GLint)ifmt, w, h, 0, fmt, type, data_ptr); + } + #else + SOKOL_ASSERT(!msaa); _SOKOL_UNUSED(msaa); + glTexImage2D(tgt, mip_index, (GLint)ifmt, w, h, 0, fmt, type, data_ptr); + #endif + } + } else if ((SG_IMAGETYPE_3D == img->cmn.type) || (SG_IMAGETYPE_ARRAY == img->cmn.type)) { + if (compressed) { + SOKOL_ASSERT(!msaa); _SOKOL_UNUSED(msaa); + glCompressedTexImage3D(tgt, mip_index, ifmt, w, h, depth, 0, data_size, data_ptr); + } else { + const GLenum type = _sg_gl_teximage_type(img->cmn.pixel_format); + const GLenum fmt = _sg_gl_teximage_format(img->cmn.pixel_format); + #if defined(SOKOL_GLCORE) + if (msaa) { + // NOTE: MSAA works only for array textures, not 3D textures + glTexImage3DMultisample(tgt, img->cmn.sample_count, (GLint)ifmt, w, h, depth, GL_TRUE); + } else { + glTexImage3D(tgt, mip_index, (GLint)ifmt, w, h, depth, 0, fmt, type, data_ptr); + } + #else + SOKOL_ASSERT(!msaa); _SOKOL_UNUSED(msaa); + glTexImage3D(tgt, mip_index, (GLint)ifmt, w, h, depth, 0, fmt, type, data_ptr); + #endif + } + } + #endif + _SG_GL_CHECK_ERROR(); +} + _SOKOL_PRIVATE sg_resource_state _sg_gl_create_image(_sg_image_t* img, const sg_image_desc* desc) { SOKOL_ASSERT(img && desc); _SG_GL_CHECK_ERROR(); - const bool msaa = img->cmn.sample_count > 1; img->gl.injected = (0 != desc->gl_textures[0]); // check if texture format is support @@ -8906,10 +9348,11 @@ _SOKOL_PRIVATE sg_resource_state _sg_gl_create_image(_sg_image_t* img, const sg_ _SG_ERROR(GL_TEXTURE_FORMAT_NOT_SUPPORTED); return SG_RESOURCESTATE_FAILED; } - const GLenum gl_internal_format = _sg_gl_teximage_internal_format(img->cmn.pixel_format); // GLES3/WebGL2/macOS doesn't have support for multisampled textures, so create a render buffer object instead - if (!_sg.features.msaa_image_bindings && img->cmn.render_target && msaa) { + const bool msaa = img->cmn.sample_count > 1; + if (!_sg.features.msaa_image_bindings && img->cmn.usage.render_attachment && msaa) { + const GLenum gl_internal_format = _sg_gl_teximage_internal_format(img->cmn.pixel_format); glGenRenderbuffers(1, &img->gl.msaa_render_buffer); glBindRenderbuffer(GL_RENDERBUFFER, img->gl.msaa_render_buffer); glRenderbufferStorageMultisample(GL_RENDERBUFFER, img->cmn.sample_count, gl_internal_format, img->cmn.width, img->cmn.height); @@ -8926,93 +9369,25 @@ _SOKOL_PRIVATE sg_resource_state _sg_gl_create_image(_sg_image_t* img, const sg_ } else { // create our own GL texture(s) img->gl.target = _sg_gl_texture_target(img->cmn.type, img->cmn.sample_count); - const GLenum gl_format = _sg_gl_teximage_format(img->cmn.pixel_format); - const bool is_compressed = _sg_is_compressed_pixel_format(img->cmn.pixel_format); for (int slot = 0; slot < img->cmn.num_slots; slot++) { glGenTextures(1, &img->gl.tex[slot]); SOKOL_ASSERT(img->gl.tex[slot]); _sg_gl_cache_store_texture_sampler_binding(0); _sg_gl_cache_bind_texture_sampler(0, img->gl.target, img->gl.tex[slot], 0); - glTexParameteri(img->gl.target, GL_TEXTURE_MAX_LEVEL, img->cmn.num_mipmaps - 1); - - // NOTE: workaround for https://issues.chromium.org/issues/355605685 - // FIXME: on GLES3 and GL 4.3 (e.g. not macOS) the texture initialization - // should be rewritten to use glTexStorage + glTexSubImage - bool tex_storage_allocated = false; - #if defined(__EMSCRIPTEN__) - if (desc->data.subimage[0][0].ptr == 0) { - SOKOL_ASSERT(!msaa); - tex_storage_allocated = true; - if ((SG_IMAGETYPE_2D == img->cmn.type) || (SG_IMAGETYPE_CUBE == img->cmn.type)) { - glTexStorage2D(img->gl.target, img->cmn.num_mipmaps, gl_internal_format, img->cmn.width, img->cmn.height); - } else if ((SG_IMAGETYPE_3D == img->cmn.type) || (SG_IMAGETYPE_ARRAY == img->cmn.type)) { - glTexStorage3D(img->gl.target, img->cmn.num_mipmaps, gl_internal_format, img->cmn.width, img->cmn.height, img->cmn.num_slices); - } - } - #endif - if (!tex_storage_allocated) { - const int num_faces = img->cmn.type == SG_IMAGETYPE_CUBE ? 6 : 1; - int data_index = 0; - for (int face_index = 0; face_index < num_faces; face_index++) { - for (int mip_index = 0; mip_index < img->cmn.num_mipmaps; mip_index++, data_index++) { - GLenum gl_img_target = img->gl.target; - if (SG_IMAGETYPE_CUBE == img->cmn.type) { - gl_img_target = _sg_gl_cubeface_target(face_index); - } - const GLvoid* data_ptr = desc->data.subimage[face_index][mip_index].ptr; - const int mip_width = _sg_miplevel_dim(img->cmn.width, mip_index); - const int mip_height = _sg_miplevel_dim(img->cmn.height, mip_index); - if ((SG_IMAGETYPE_2D == img->cmn.type) || (SG_IMAGETYPE_CUBE == img->cmn.type)) { - if (is_compressed) { - SOKOL_ASSERT(!msaa); - const GLsizei data_size = (GLsizei) desc->data.subimage[face_index][mip_index].size; - glCompressedTexImage2D(gl_img_target, mip_index, gl_internal_format, - mip_width, mip_height, 0, data_size, data_ptr); - } else { - const GLenum gl_type = _sg_gl_teximage_type(img->cmn.pixel_format); - #if defined(SOKOL_GLCORE) && !defined(__APPLE__) - if (msaa) { - glTexImage2DMultisample(gl_img_target, img->cmn.sample_count, gl_internal_format, - mip_width, mip_height, GL_TRUE); - } else { - glTexImage2D(gl_img_target, mip_index, (GLint)gl_internal_format, - mip_width, mip_height, 0, gl_format, gl_type, data_ptr); - } - #else - SOKOL_ASSERT(!msaa); - glTexImage2D(gl_img_target, mip_index, (GLint)gl_internal_format, - mip_width, mip_height, 0, gl_format, gl_type, data_ptr); - #endif - } - } else if ((SG_IMAGETYPE_3D == img->cmn.type) || (SG_IMAGETYPE_ARRAY == img->cmn.type)) { - int mip_depth = img->cmn.num_slices; - if (SG_IMAGETYPE_3D == img->cmn.type) { - mip_depth = _sg_miplevel_dim(mip_depth, mip_index); - } - if (is_compressed) { - SOKOL_ASSERT(!msaa); - const GLsizei data_size = (GLsizei) desc->data.subimage[face_index][mip_index].size; - glCompressedTexImage3D(gl_img_target, mip_index, gl_internal_format, - mip_width, mip_height, mip_depth, 0, data_size, data_ptr); - } else { - const GLenum gl_type = _sg_gl_teximage_type(img->cmn.pixel_format); - #if defined(SOKOL_GLCORE) && !defined(__APPLE__) - if (msaa) { - // NOTE: only for array textures, not actual 3D textures! - glTexImage3DMultisample(gl_img_target, img->cmn.sample_count, gl_internal_format, - mip_width, mip_height, mip_depth, GL_TRUE); - } else { - glTexImage3D(gl_img_target, mip_index, (GLint)gl_internal_format, - mip_width, mip_height, mip_depth, 0, gl_format, gl_type, data_ptr); - } - #else - SOKOL_ASSERT(!msaa); - glTexImage3D(gl_img_target, mip_index, (GLint)gl_internal_format, - mip_width, mip_height, mip_depth, 0, gl_format, gl_type, data_ptr); - #endif - } - } + _sg_gl_texstorage(img); + const int num_faces = img->cmn.type == SG_IMAGETYPE_CUBE ? 6 : 1; + for (int face_index = 0; face_index < num_faces; face_index++) { + for (int mip_index = 0; mip_index < img->cmn.num_mipmaps; mip_index++) { + GLenum gl_img_target = img->gl.target; + if (SG_IMAGETYPE_CUBE == img->cmn.type) { + gl_img_target = _sg_gl_cubeface_target(face_index); } + const GLvoid* data_ptr = desc->data.subimage[face_index][mip_index].ptr; + const GLsizei data_size = (GLsizei)desc->data.subimage[face_index][mip_index].size; + const int mip_width = _sg_miplevel_dim(img->cmn.width, mip_index); + const int mip_height = _sg_miplevel_dim(img->cmn.height, mip_index); + const int mip_depth = (SG_IMAGETYPE_3D == img->cmn.type) ? _sg_miplevel_dim(img->cmn.num_slices, mip_index) : img->cmn.num_slices; + _sg_gl_teximage(img, gl_img_target, mip_index, mip_width, mip_height, mip_depth, data_ptr, data_size); } } _sg_gl_cache_restore_texture_sampler_binding(0); @@ -9139,6 +9514,12 @@ _SOKOL_PRIVATE bool _sg_gl_ensure_glsl_bindslot_ranges(const sg_shader_desc* des return false; } } + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (desc->storage_images[i].glsl_binding_n >= _SG_GL_MAX_SIMG_BINDINGS) { + _SG_ERROR(GL_STORAGEIMAGE_GLSL_BINDING_OUT_OF_RANGE); + return false; + } + } return true; } @@ -9257,6 +9638,16 @@ _SOKOL_PRIVATE sg_resource_state _sg_gl_create_shader(_sg_shader_t* shd, const s shd->gl.sbuf_binding[sbuf_index] = sbuf_desc->glsl_binding_n; } + // copy storage image bind slots + for (size_t simg_index = 0; simg_index < SG_MAX_STORAGE_ATTACHMENTS; simg_index++) { + const sg_shader_storage_image* simg_desc = &desc->storage_images[simg_index]; + if (simg_desc->stage == SG_SHADERSTAGE_NONE) { + continue; + } + SOKOL_ASSERT(simg_desc->glsl_binding_n < _SG_GL_MAX_SIMG_BINDINGS); + shd->gl.simg_binding[simg_index] = simg_desc->glsl_binding_n; + } + // record image sampler location in shader program _SG_GL_CHECK_ERROR(); GLuint cur_prog = 0; @@ -9408,9 +9799,8 @@ _SOKOL_PRIVATE GLenum _sg_gl_depth_stencil_attachment_type(const _sg_gl_attachme } } -_SOKOL_PRIVATE sg_resource_state _sg_gl_create_attachments(_sg_attachments_t* atts, _sg_image_t** color_images, _sg_image_t** resolve_images, _sg_image_t* ds_image, const sg_attachments_desc* desc) { - SOKOL_ASSERT(atts && desc); - SOKOL_ASSERT(color_images && resolve_images); +_SOKOL_PRIVATE sg_resource_state _sg_gl_create_attachments(_sg_attachments_t* atts, const _sg_attachments_ptrs_t* atts_ptrs, const sg_attachments_desc* desc) { + SOKOL_ASSERT(atts && atts_ptrs && desc); _SG_GL_CHECK_ERROR(); // copy image pointers @@ -9419,24 +9809,46 @@ _SOKOL_PRIVATE sg_resource_state _sg_gl_create_attachments(_sg_attachments_t* at _SOKOL_UNUSED(color_desc); SOKOL_ASSERT(color_desc->image.id != SG_INVALID_ID); SOKOL_ASSERT(0 == atts->gl.colors[i].image); - SOKOL_ASSERT(color_images[i] && (color_images[i]->slot.id == color_desc->image.id)); - SOKOL_ASSERT(_sg_is_valid_rendertarget_color_format(color_images[i]->cmn.pixel_format)); - atts->gl.colors[i].image = color_images[i]; + SOKOL_ASSERT(atts_ptrs->color_images[i]); + _sg_image_t* clr_img = atts_ptrs->color_images[i]; + SOKOL_ASSERT(clr_img->slot.id == color_desc->image.id); + SOKOL_ASSERT(_sg_is_valid_attachment_color_format(clr_img->cmn.pixel_format)); + atts->gl.colors[i].image = clr_img; const sg_attachment_desc* resolve_desc = &desc->resolves[i]; if (resolve_desc->image.id != SG_INVALID_ID) { SOKOL_ASSERT(0 == atts->gl.resolves[i].image); - SOKOL_ASSERT(resolve_images[i] && (resolve_images[i]->slot.id == resolve_desc->image.id)); - SOKOL_ASSERT(color_images[i] && (color_images[i]->cmn.pixel_format == resolve_images[i]->cmn.pixel_format)); - atts->gl.resolves[i].image = resolve_images[i]; + SOKOL_ASSERT(atts_ptrs->resolve_images[i]); + _sg_image_t* rsv_img = atts_ptrs->resolve_images[i]; + SOKOL_ASSERT(rsv_img->slot.id == resolve_desc->image.id); + SOKOL_ASSERT(clr_img && (clr_img->cmn.pixel_format == rsv_img->cmn.pixel_format)); + atts->gl.resolves[i].image = rsv_img; } } SOKOL_ASSERT(0 == atts->gl.depth_stencil.image); const sg_attachment_desc* ds_desc = &desc->depth_stencil; if (ds_desc->image.id != SG_INVALID_ID) { - SOKOL_ASSERT(ds_image && (ds_image->slot.id == ds_desc->image.id)); - SOKOL_ASSERT(_sg_is_valid_rendertarget_depth_format(ds_image->cmn.pixel_format)); - atts->gl.depth_stencil.image = ds_image; + SOKOL_ASSERT(atts_ptrs->ds_image); + _sg_image_t* ds_img = atts_ptrs->ds_image; + SOKOL_ASSERT(ds_img->slot.id == ds_desc->image.id); + SOKOL_ASSERT(_sg_is_valid_attachment_depth_format(ds_img->cmn.pixel_format)); + atts->gl.depth_stencil.image = ds_img; + } + for (int i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + const sg_attachment_desc* storage_desc = &desc->storages[i]; + if (storage_desc->image.id != SG_INVALID_ID) { + SOKOL_ASSERT(0 == atts->gl.storages[i].image); + SOKOL_ASSERT(atts_ptrs->storage_images[i]); + _sg_image_t* stg_img = atts_ptrs->storage_images[i]; + SOKOL_ASSERT(stg_img->slot.id == storage_desc->image.id); + atts->gl.storages[i].image = stg_img; + } + } + + // if this is a compute pass attachment we're done here + if (atts->cmn.has_storage_attachments) { + SOKOL_ASSERT(!atts->cmn.has_render_attachments); + return SG_RESOURCESTATE_VALID; } // store current framebuffer binding (restored at end of function) @@ -9583,6 +9995,11 @@ _SOKOL_PRIVATE _sg_image_t* _sg_gl_attachments_ds_image(const _sg_attachments_t* return atts->gl.depth_stencil.image; } +_SOKOL_PRIVATE _sg_image_t* _sg_gl_attachments_storage_image(const _sg_attachments_t* atts, int index) { + SOKOL_ASSERT(atts && (index >= 0) && (index < SG_MAX_COLOR_ATTACHMENTS)); + return atts->gl.storages[index].image; +} + _SOKOL_PRIVATE void _sg_gl_begin_pass(const sg_pass* pass) { // FIXME: what if a texture used as render target is still bound, should we // unbind all currently bound textures in begin pass? @@ -9591,6 +10008,11 @@ _SOKOL_PRIVATE void _sg_gl_begin_pass(const sg_pass* pass) { // early out if this a compute pass if (pass->compute) { + // first pipeline in pass needs to re-apply storage attachments + if (_sg.cur_pass.atts && _sg.cur_pass.atts->cmn.has_storage_attachments) { + _sg.gl.cache.cur_pipeline = 0; + _sg.gl.cache.cur_pipeline_id.id = SG_INVALID_ID; + } return; } @@ -9705,9 +10127,7 @@ _SOKOL_PRIVATE void _sg_gl_begin_pass(const sg_pass* pass) { _SG_GL_CHECK_ERROR(); } -_SOKOL_PRIVATE void _sg_gl_end_pass(void) { - _SG_GL_CHECK_ERROR(); - +_SOKOL_PRIVATE void _sg_gl_end_render_pass(void) { if (_sg.cur_pass.atts) { const _sg_attachments_t* atts = _sg.cur_pass.atts; SOKOL_ASSERT(atts->slot.id == _sg.cur_pass.atts_id.id); @@ -9756,6 +10176,23 @@ _SOKOL_PRIVATE void _sg_gl_end_pass(void) { } #endif } +} + +_SOKOL_PRIVATE void _sg_gl_end_compute_pass(void) { + #if defined(_SOKOL_GL_HAS_COMPUTE) + if (_sg.cur_pass.atts && _sg.cur_pass.atts->cmn.has_storage_attachments) { + glMemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT|GL_SHADER_IMAGE_ACCESS_BARRIER_BIT); + } + #endif +} + +_SOKOL_PRIVATE void _sg_gl_end_pass(void) { + _SG_GL_CHECK_ERROR(); + if (_sg.cur_pass.is_compute) { + _sg_gl_end_compute_pass(); + } else { + _sg_gl_end_render_pass(); + } _SG_GL_CHECK_ERROR(); } @@ -9769,6 +10206,248 @@ _SOKOL_PRIVATE void _sg_gl_apply_scissor_rect(int x, int y, int w, int h, bool o glScissor(x, y, w, h); } +_SOKOL_PRIVATE void _sg_gl_apply_render_pipeline_state(_sg_pipeline_t* pip) { + // update render pipeline state + _sg.gl.cache.cur_primitive_type = _sg_gl_primitive_type(pip->gl.primitive_type); + _sg.gl.cache.cur_index_type = _sg_gl_index_type(pip->cmn.index_type); + + // update depth state + { + const sg_depth_state* state_ds = &pip->gl.depth; + sg_depth_state* cache_ds = &_sg.gl.cache.depth; + if (state_ds->compare != cache_ds->compare) { + cache_ds->compare = state_ds->compare; + glDepthFunc(_sg_gl_compare_func(state_ds->compare)); + _sg_stats_add(gl.num_render_state, 1); + } + if (state_ds->write_enabled != cache_ds->write_enabled) { + cache_ds->write_enabled = state_ds->write_enabled; + glDepthMask(state_ds->write_enabled); + _sg_stats_add(gl.num_render_state, 1); + } + if (!_sg_fequal(state_ds->bias, cache_ds->bias, 0.000001f) || + !_sg_fequal(state_ds->bias_slope_scale, cache_ds->bias_slope_scale, 0.000001f)) + { + /* according to ANGLE's D3D11 backend: + D3D11 SlopeScaledDepthBias ==> GL polygonOffsetFactor + D3D11 DepthBias ==> GL polygonOffsetUnits + DepthBiasClamp has no meaning on GL + */ + cache_ds->bias = state_ds->bias; + cache_ds->bias_slope_scale = state_ds->bias_slope_scale; + glPolygonOffset(state_ds->bias_slope_scale, state_ds->bias); + _sg_stats_add(gl.num_render_state, 1); + bool po_enabled = true; + if (_sg_fequal(state_ds->bias, 0.0f, 0.000001f) && + _sg_fequal(state_ds->bias_slope_scale, 0.0f, 0.000001f)) + { + po_enabled = false; + } + if (po_enabled != _sg.gl.cache.polygon_offset_enabled) { + _sg.gl.cache.polygon_offset_enabled = po_enabled; + if (po_enabled) { + glEnable(GL_POLYGON_OFFSET_FILL); + } else { + glDisable(GL_POLYGON_OFFSET_FILL); + } + _sg_stats_add(gl.num_render_state, 1); + } + } + } + + // update stencil state + { + const sg_stencil_state* state_ss = &pip->gl.stencil; + sg_stencil_state* cache_ss = &_sg.gl.cache.stencil; + if (state_ss->enabled != cache_ss->enabled) { + cache_ss->enabled = state_ss->enabled; + if (state_ss->enabled) { + glEnable(GL_STENCIL_TEST); + } else { + glDisable(GL_STENCIL_TEST); + } + _sg_stats_add(gl.num_render_state, 1); + } + if (state_ss->write_mask != cache_ss->write_mask) { + cache_ss->write_mask = state_ss->write_mask; + glStencilMask(state_ss->write_mask); + _sg_stats_add(gl.num_render_state, 1); + } + for (int i = 0; i < 2; i++) { + const sg_stencil_face_state* state_sfs = (i==0)? &state_ss->front : &state_ss->back; + sg_stencil_face_state* cache_sfs = (i==0)? &cache_ss->front : &cache_ss->back; + GLenum gl_face = (i==0)? GL_FRONT : GL_BACK; + if ((state_sfs->compare != cache_sfs->compare) || + (state_ss->read_mask != cache_ss->read_mask) || + (state_ss->ref != cache_ss->ref)) + { + cache_sfs->compare = state_sfs->compare; + glStencilFuncSeparate(gl_face, + _sg_gl_compare_func(state_sfs->compare), + state_ss->ref, + state_ss->read_mask); + _sg_stats_add(gl.num_render_state, 1); + } + if ((state_sfs->fail_op != cache_sfs->fail_op) || + (state_sfs->depth_fail_op != cache_sfs->depth_fail_op) || + (state_sfs->pass_op != cache_sfs->pass_op)) + { + cache_sfs->fail_op = state_sfs->fail_op; + cache_sfs->depth_fail_op = state_sfs->depth_fail_op; + cache_sfs->pass_op = state_sfs->pass_op; + glStencilOpSeparate(gl_face, + _sg_gl_stencil_op(state_sfs->fail_op), + _sg_gl_stencil_op(state_sfs->depth_fail_op), + _sg_gl_stencil_op(state_sfs->pass_op)); + _sg_stats_add(gl.num_render_state, 1); + } + } + cache_ss->read_mask = state_ss->read_mask; + cache_ss->ref = state_ss->ref; + } + + if (pip->cmn.color_count > 0) { + // update blend state + // FIXME: separate blend state per color attachment + const sg_blend_state* state_bs = &pip->gl.blend; + sg_blend_state* cache_bs = &_sg.gl.cache.blend; + if (state_bs->enabled != cache_bs->enabled) { + cache_bs->enabled = state_bs->enabled; + if (state_bs->enabled) { + glEnable(GL_BLEND); + } else { + glDisable(GL_BLEND); + } + _sg_stats_add(gl.num_render_state, 1); + } + if ((state_bs->src_factor_rgb != cache_bs->src_factor_rgb) || + (state_bs->dst_factor_rgb != cache_bs->dst_factor_rgb) || + (state_bs->src_factor_alpha != cache_bs->src_factor_alpha) || + (state_bs->dst_factor_alpha != cache_bs->dst_factor_alpha)) + { + cache_bs->src_factor_rgb = state_bs->src_factor_rgb; + cache_bs->dst_factor_rgb = state_bs->dst_factor_rgb; + cache_bs->src_factor_alpha = state_bs->src_factor_alpha; + cache_bs->dst_factor_alpha = state_bs->dst_factor_alpha; + glBlendFuncSeparate(_sg_gl_blend_factor(state_bs->src_factor_rgb), + _sg_gl_blend_factor(state_bs->dst_factor_rgb), + _sg_gl_blend_factor(state_bs->src_factor_alpha), + _sg_gl_blend_factor(state_bs->dst_factor_alpha)); + _sg_stats_add(gl.num_render_state, 1); + } + if ((state_bs->op_rgb != cache_bs->op_rgb) || (state_bs->op_alpha != cache_bs->op_alpha)) { + cache_bs->op_rgb = state_bs->op_rgb; + cache_bs->op_alpha = state_bs->op_alpha; + glBlendEquationSeparate(_sg_gl_blend_op(state_bs->op_rgb), _sg_gl_blend_op(state_bs->op_alpha)); + _sg_stats_add(gl.num_render_state, 1); + } + + // standalone color target state + for (GLuint i = 0; i < (GLuint)pip->cmn.color_count; i++) { + if (pip->gl.color_write_mask[i] != _sg.gl.cache.color_write_mask[i]) { + const sg_color_mask cm = pip->gl.color_write_mask[i]; + _sg.gl.cache.color_write_mask[i] = cm; + #ifdef SOKOL_GLCORE + glColorMaski(i, + (cm & SG_COLORMASK_R) != 0, + (cm & SG_COLORMASK_G) != 0, + (cm & SG_COLORMASK_B) != 0, + (cm & SG_COLORMASK_A) != 0); + #else + if (0 == i) { + glColorMask((cm & SG_COLORMASK_R) != 0, + (cm & SG_COLORMASK_G) != 0, + (cm & SG_COLORMASK_B) != 0, + (cm & SG_COLORMASK_A) != 0); + } + #endif + _sg_stats_add(gl.num_render_state, 1); + } + } + + if (!_sg_fequal(pip->cmn.blend_color.r, _sg.gl.cache.blend_color.r, 0.0001f) || + !_sg_fequal(pip->cmn.blend_color.g, _sg.gl.cache.blend_color.g, 0.0001f) || + !_sg_fequal(pip->cmn.blend_color.b, _sg.gl.cache.blend_color.b, 0.0001f) || + !_sg_fequal(pip->cmn.blend_color.a, _sg.gl.cache.blend_color.a, 0.0001f)) + { + sg_color c = pip->cmn.blend_color; + _sg.gl.cache.blend_color = c; + glBlendColor(c.r, c.g, c.b, c.a); + _sg_stats_add(gl.num_render_state, 1); + } + } // pip->cmn.color_count > 0 + + if (pip->gl.cull_mode != _sg.gl.cache.cull_mode) { + _sg.gl.cache.cull_mode = pip->gl.cull_mode; + if (SG_CULLMODE_NONE == pip->gl.cull_mode) { + glDisable(GL_CULL_FACE); + _sg_stats_add(gl.num_render_state, 1); + } else { + glEnable(GL_CULL_FACE); + GLenum gl_mode = (SG_CULLMODE_FRONT == pip->gl.cull_mode) ? GL_FRONT : GL_BACK; + glCullFace(gl_mode); + _sg_stats_add(gl.num_render_state, 2); + } + } + if (pip->gl.face_winding != _sg.gl.cache.face_winding) { + _sg.gl.cache.face_winding = pip->gl.face_winding; + GLenum gl_winding = (SG_FACEWINDING_CW == pip->gl.face_winding) ? GL_CW : GL_CCW; + glFrontFace(gl_winding); + _sg_stats_add(gl.num_render_state, 1); + } + if (pip->gl.alpha_to_coverage_enabled != _sg.gl.cache.alpha_to_coverage_enabled) { + _sg.gl.cache.alpha_to_coverage_enabled = pip->gl.alpha_to_coverage_enabled; + if (pip->gl.alpha_to_coverage_enabled) { + glEnable(GL_SAMPLE_ALPHA_TO_COVERAGE); + } else { + glDisable(GL_SAMPLE_ALPHA_TO_COVERAGE); + } + _sg_stats_add(gl.num_render_state, 1); + } + #ifdef SOKOL_GLCORE + if (pip->gl.sample_count != _sg.gl.cache.sample_count) { + _sg.gl.cache.sample_count = pip->gl.sample_count; + if (pip->gl.sample_count > 1) { + glEnable(GL_MULTISAMPLE); + } else { + glDisable(GL_MULTISAMPLE); + } + _sg_stats_add(gl.num_render_state, 1); + } + #endif +} + +_SOKOL_PRIVATE void _sg_gl_apply_compute_pipeline_state(_sg_pipeline_t* pip) { + #if defined(_SOKOL_GL_HAS_COMPUTE) + // apply storage attachment images (if any) + if (_sg.cur_pass.atts) { + const _sg_attachments_t* atts = _sg.cur_pass.atts; + const _sg_shader_t* shd = pip->shader; + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (shd->cmn.storage_images[i].stage == SG_SHADERSTAGE_NONE) { + continue; + } + SOKOL_ASSERT(shd->cmn.storage_images[i].stage == SG_SHADERSTAGE_COMPUTE); + SOKOL_ASSERT(shd->gl.simg_binding[i] < _SG_GL_MAX_SIMG_BINDINGS); + SOKOL_ASSERT(atts->gl.storages[i].image); + _sg_image_t* img = atts->gl.storages[i].image; + GLuint gl_unit = shd->gl.simg_binding[i]; + GLuint gl_tex = img->gl.tex[img->cmn.active_slot]; + GLint level = atts->cmn.storages[i].mip_level; + GLint layer = atts->cmn.storages[i].slice; + GLboolean layered = shd->cmn.storage_images[i].image_type != SG_IMAGETYPE_2D; + GLenum access = shd->cmn.storage_images[i].writeonly ? GL_WRITE_ONLY : GL_READ_WRITE; + GLenum format = _sg_gl_teximage_internal_format(shd->cmn.storage_images[i].access_format); + // FIXME: go through state cache, use attachment id as key + glBindImageTexture(gl_unit, gl_tex, level, layered, layer, access, format); + _SG_GL_CHECK_ERROR(); + } + } + #else + _SOKOL_UNUSED(pip); + #endif +} + _SOKOL_PRIVATE void _sg_gl_apply_pipeline(_sg_pipeline_t* pip) { SOKOL_ASSERT(pip); SOKOL_ASSERT(pip->shader && (pip->cmn.shader_id.id == pip->shader->slot.id)); @@ -9784,267 +10463,79 @@ _SOKOL_PRIVATE void _sg_gl_apply_pipeline(_sg_pipeline_t* pip) { _sg_stats_add(gl.num_use_program, 1); } - // if this is a compute pass, can early-out here if (pip->cmn.is_compute) { - _SG_GL_CHECK_ERROR(); - return; + _sg_gl_apply_compute_pipeline_state(pip); + } else { + _sg_gl_apply_render_pipeline_state(pip); } - - // update render pipeline state - _sg.gl.cache.cur_primitive_type = _sg_gl_primitive_type(pip->gl.primitive_type); - _sg.gl.cache.cur_index_type = _sg_gl_index_type(pip->cmn.index_type); - - // update depth state - { - const sg_depth_state* state_ds = &pip->gl.depth; - sg_depth_state* cache_ds = &_sg.gl.cache.depth; - if (state_ds->compare != cache_ds->compare) { - cache_ds->compare = state_ds->compare; - glDepthFunc(_sg_gl_compare_func(state_ds->compare)); - _sg_stats_add(gl.num_render_state, 1); - } - if (state_ds->write_enabled != cache_ds->write_enabled) { - cache_ds->write_enabled = state_ds->write_enabled; - glDepthMask(state_ds->write_enabled); - _sg_stats_add(gl.num_render_state, 1); - } - if (!_sg_fequal(state_ds->bias, cache_ds->bias, 0.000001f) || - !_sg_fequal(state_ds->bias_slope_scale, cache_ds->bias_slope_scale, 0.000001f)) - { - /* according to ANGLE's D3D11 backend: - D3D11 SlopeScaledDepthBias ==> GL polygonOffsetFactor - D3D11 DepthBias ==> GL polygonOffsetUnits - DepthBiasClamp has no meaning on GL - */ - cache_ds->bias = state_ds->bias; - cache_ds->bias_slope_scale = state_ds->bias_slope_scale; - glPolygonOffset(state_ds->bias_slope_scale, state_ds->bias); - _sg_stats_add(gl.num_render_state, 1); - bool po_enabled = true; - if (_sg_fequal(state_ds->bias, 0.0f, 0.000001f) && - _sg_fequal(state_ds->bias_slope_scale, 0.0f, 0.000001f)) - { - po_enabled = false; - } - if (po_enabled != _sg.gl.cache.polygon_offset_enabled) { - _sg.gl.cache.polygon_offset_enabled = po_enabled; - if (po_enabled) { - glEnable(GL_POLYGON_OFFSET_FILL); - } else { - glDisable(GL_POLYGON_OFFSET_FILL); - } - _sg_stats_add(gl.num_render_state, 1); - } - } - } - - // update stencil state - { - const sg_stencil_state* state_ss = &pip->gl.stencil; - sg_stencil_state* cache_ss = &_sg.gl.cache.stencil; - if (state_ss->enabled != cache_ss->enabled) { - cache_ss->enabled = state_ss->enabled; - if (state_ss->enabled) { - glEnable(GL_STENCIL_TEST); - } else { - glDisable(GL_STENCIL_TEST); - } - _sg_stats_add(gl.num_render_state, 1); - } - if (state_ss->write_mask != cache_ss->write_mask) { - cache_ss->write_mask = state_ss->write_mask; - glStencilMask(state_ss->write_mask); - _sg_stats_add(gl.num_render_state, 1); - } - for (int i = 0; i < 2; i++) { - const sg_stencil_face_state* state_sfs = (i==0)? &state_ss->front : &state_ss->back; - sg_stencil_face_state* cache_sfs = (i==0)? &cache_ss->front : &cache_ss->back; - GLenum gl_face = (i==0)? GL_FRONT : GL_BACK; - if ((state_sfs->compare != cache_sfs->compare) || - (state_ss->read_mask != cache_ss->read_mask) || - (state_ss->ref != cache_ss->ref)) - { - cache_sfs->compare = state_sfs->compare; - glStencilFuncSeparate(gl_face, - _sg_gl_compare_func(state_sfs->compare), - state_ss->ref, - state_ss->read_mask); - _sg_stats_add(gl.num_render_state, 1); - } - if ((state_sfs->fail_op != cache_sfs->fail_op) || - (state_sfs->depth_fail_op != cache_sfs->depth_fail_op) || - (state_sfs->pass_op != cache_sfs->pass_op)) - { - cache_sfs->fail_op = state_sfs->fail_op; - cache_sfs->depth_fail_op = state_sfs->depth_fail_op; - cache_sfs->pass_op = state_sfs->pass_op; - glStencilOpSeparate(gl_face, - _sg_gl_stencil_op(state_sfs->fail_op), - _sg_gl_stencil_op(state_sfs->depth_fail_op), - _sg_gl_stencil_op(state_sfs->pass_op)); - _sg_stats_add(gl.num_render_state, 1); - } - } - cache_ss->read_mask = state_ss->read_mask; - cache_ss->ref = state_ss->ref; - } - - if (pip->cmn.color_count > 0) { - // update blend state - // FIXME: separate blend state per color attachment - const sg_blend_state* state_bs = &pip->gl.blend; - sg_blend_state* cache_bs = &_sg.gl.cache.blend; - if (state_bs->enabled != cache_bs->enabled) { - cache_bs->enabled = state_bs->enabled; - if (state_bs->enabled) { - glEnable(GL_BLEND); - } else { - glDisable(GL_BLEND); - } - _sg_stats_add(gl.num_render_state, 1); - } - if ((state_bs->src_factor_rgb != cache_bs->src_factor_rgb) || - (state_bs->dst_factor_rgb != cache_bs->dst_factor_rgb) || - (state_bs->src_factor_alpha != cache_bs->src_factor_alpha) || - (state_bs->dst_factor_alpha != cache_bs->dst_factor_alpha)) - { - cache_bs->src_factor_rgb = state_bs->src_factor_rgb; - cache_bs->dst_factor_rgb = state_bs->dst_factor_rgb; - cache_bs->src_factor_alpha = state_bs->src_factor_alpha; - cache_bs->dst_factor_alpha = state_bs->dst_factor_alpha; - glBlendFuncSeparate(_sg_gl_blend_factor(state_bs->src_factor_rgb), - _sg_gl_blend_factor(state_bs->dst_factor_rgb), - _sg_gl_blend_factor(state_bs->src_factor_alpha), - _sg_gl_blend_factor(state_bs->dst_factor_alpha)); - _sg_stats_add(gl.num_render_state, 1); - } - if ((state_bs->op_rgb != cache_bs->op_rgb) || (state_bs->op_alpha != cache_bs->op_alpha)) { - cache_bs->op_rgb = state_bs->op_rgb; - cache_bs->op_alpha = state_bs->op_alpha; - glBlendEquationSeparate(_sg_gl_blend_op(state_bs->op_rgb), _sg_gl_blend_op(state_bs->op_alpha)); - _sg_stats_add(gl.num_render_state, 1); - } - - // standalone color target state - for (GLuint i = 0; i < (GLuint)pip->cmn.color_count; i++) { - if (pip->gl.color_write_mask[i] != _sg.gl.cache.color_write_mask[i]) { - const sg_color_mask cm = pip->gl.color_write_mask[i]; - _sg.gl.cache.color_write_mask[i] = cm; - #ifdef SOKOL_GLCORE - glColorMaski(i, - (cm & SG_COLORMASK_R) != 0, - (cm & SG_COLORMASK_G) != 0, - (cm & SG_COLORMASK_B) != 0, - (cm & SG_COLORMASK_A) != 0); - #else - if (0 == i) { - glColorMask((cm & SG_COLORMASK_R) != 0, - (cm & SG_COLORMASK_G) != 0, - (cm & SG_COLORMASK_B) != 0, - (cm & SG_COLORMASK_A) != 0); - } - #endif - _sg_stats_add(gl.num_render_state, 1); - } - } - - if (!_sg_fequal(pip->cmn.blend_color.r, _sg.gl.cache.blend_color.r, 0.0001f) || - !_sg_fequal(pip->cmn.blend_color.g, _sg.gl.cache.blend_color.g, 0.0001f) || - !_sg_fequal(pip->cmn.blend_color.b, _sg.gl.cache.blend_color.b, 0.0001f) || - !_sg_fequal(pip->cmn.blend_color.a, _sg.gl.cache.blend_color.a, 0.0001f)) - { - sg_color c = pip->cmn.blend_color; - _sg.gl.cache.blend_color = c; - glBlendColor(c.r, c.g, c.b, c.a); - _sg_stats_add(gl.num_render_state, 1); - } - } // pip->cmn.color_count > 0 - - if (pip->gl.cull_mode != _sg.gl.cache.cull_mode) { - _sg.gl.cache.cull_mode = pip->gl.cull_mode; - if (SG_CULLMODE_NONE == pip->gl.cull_mode) { - glDisable(GL_CULL_FACE); - _sg_stats_add(gl.num_render_state, 1); - } else { - glEnable(GL_CULL_FACE); - GLenum gl_mode = (SG_CULLMODE_FRONT == pip->gl.cull_mode) ? GL_FRONT : GL_BACK; - glCullFace(gl_mode); - _sg_stats_add(gl.num_render_state, 2); - } - } - if (pip->gl.face_winding != _sg.gl.cache.face_winding) { - _sg.gl.cache.face_winding = pip->gl.face_winding; - GLenum gl_winding = (SG_FACEWINDING_CW == pip->gl.face_winding) ? GL_CW : GL_CCW; - glFrontFace(gl_winding); - _sg_stats_add(gl.num_render_state, 1); - } - if (pip->gl.alpha_to_coverage_enabled != _sg.gl.cache.alpha_to_coverage_enabled) { - _sg.gl.cache.alpha_to_coverage_enabled = pip->gl.alpha_to_coverage_enabled; - if (pip->gl.alpha_to_coverage_enabled) { - glEnable(GL_SAMPLE_ALPHA_TO_COVERAGE); - } else { - glDisable(GL_SAMPLE_ALPHA_TO_COVERAGE); - } - _sg_stats_add(gl.num_render_state, 1); - } - #ifdef SOKOL_GLCORE - if (pip->gl.sample_count != _sg.gl.cache.sample_count) { - _sg.gl.cache.sample_count = pip->gl.sample_count; - if (pip->gl.sample_count > 1) { - glEnable(GL_MULTISAMPLE); - } else { - glDisable(GL_MULTISAMPLE); - } - _sg_stats_add(gl.num_render_state, 1); - } - #endif - } _SG_GL_CHECK_ERROR(); } -#if defined _SOKOL_GL_HAS_COMPUTE -_SOKOL_PRIVATE void _sg_gl_handle_memory_barriers(const _sg_shader_t* shd, const _sg_bindings_t* bnd) { +#if defined(_SOKOL_GL_HAS_COMPUTE) +_SOKOL_PRIVATE void _sg_gl_handle_memory_barriers(const _sg_shader_t* shd, const _sg_bindings_ptrs_t* bnd) { if (!_sg.features.compute) { return; } - // NOTE: currently only storage buffers can be GPU-written, and storage - // buffers cannot be bound as vertex- or index-buffers. - bool needs_barrier = false; - for (size_t i = 0; i < SG_MAX_STORAGEBUFFER_BINDSLOTS; i++) { - if (shd->cmn.storage_buffers[i].stage == SG_SHADERSTAGE_NONE) { + GLbitfield gl_barrier_bits = 0; + + // if vertex-, index- or storage-buffer bindings have been written + // by a compute shader before, a barrier must be issued + for (size_t i = 0; i < SG_MAX_VERTEXBUFFER_BINDSLOTS; i++) { + _sg_buffer_t* buf = bnd->vbs[i]; + if (!buf) { continue; } - _sg_buffer_t* buf = bnd->sbufs[i]; - // if this buffer has pending GPU changes, issue a memory barrier - if (buf->gl.gpu_dirty) { - buf->gl.gpu_dirty = false; - needs_barrier = true; - } - // if this binding is going to be written by the GPU set the buffer to 'gpu_dirty' - if (!shd->cmn.storage_buffers[i].readonly) { - buf->gl.gpu_dirty = true; + if (buf->gl.gpu_dirty_flags & _SG_GL_GPUDIRTY_VERTEXBUFFER) { + gl_barrier_bits |= GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT; + buf->gl.gpu_dirty_flags &= (uint8_t)~_SG_GL_GPUDIRTY_VERTEXBUFFER; } } - if (needs_barrier) { - glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT); + if (bnd->ib) { + _sg_buffer_t* buf = bnd->ib; + if (buf->gl.gpu_dirty_flags & _SG_GL_GPUDIRTY_INDEXBUFFER) { + gl_barrier_bits |= GL_ELEMENT_ARRAY_BARRIER_BIT; + buf->gl.gpu_dirty_flags &= (uint8_t)~_SG_GL_GPUDIRTY_INDEXBUFFER; + } + } + for (size_t i = 0; i < SG_MAX_STORAGEBUFFER_BINDSLOTS; i++) { + _sg_buffer_t* buf = bnd->sbufs[i]; + if (!buf) { + continue; + } + SOKOL_ASSERT(shd->cmn.storage_buffers[i].stage != SG_SHADERSTAGE_NONE); + if (buf->gl.gpu_dirty_flags & _SG_GL_GPUDIRTY_STORAGEBUFFER) { + gl_barrier_bits |= GL_SHADER_STORAGE_BARRIER_BIT; + buf->gl.gpu_dirty_flags &= (uint8_t)~_SG_GL_GPUDIRTY_STORAGEBUFFER; + } + } + + // mark storage buffers as dirty which will be written by compute shaders + // (don't merge this into the above loop, this would mess up the dirty + // dirty flags if the same buffer is bound multiple times) + for (size_t i = 0; i < SG_MAX_STORAGEBUFFER_BINDSLOTS; i++) { + _sg_buffer_t* buf = bnd->sbufs[i]; + if (!buf) { + continue; + } + if (!shd->cmn.storage_buffers[i].readonly) { + buf->gl.gpu_dirty_flags = _SG_GL_GPUDIRTY_BUFFER_ALL; + } + } + if (0 != gl_barrier_bits) { + glMemoryBarrier(gl_barrier_bits); _sg_stats_add(gl.num_memory_barriers, 1); } } #endif -_SOKOL_PRIVATE bool _sg_gl_apply_bindings(_sg_bindings_t* bnd) { +_SOKOL_PRIVATE bool _sg_gl_apply_bindings(_sg_bindings_ptrs_t* bnd) { SOKOL_ASSERT(bnd); SOKOL_ASSERT(bnd->pip && bnd->pip->shader); SOKOL_ASSERT(bnd->pip->shader->slot.id == bnd->pip->cmn.shader_id.id); _SG_GL_CHECK_ERROR(); const _sg_shader_t* shd = bnd->pip->shader; - // take care of storage buffer memory barriers - #if defined(_SOKOL_GL_HAS_COMPUTE) - _sg_gl_handle_memory_barriers(shd, bnd); - #endif - // bind combined image-samplers _SG_GL_CHECK_ERROR(); for (size_t img_smp_index = 0; img_smp_index < SG_MAX_IMAGE_SAMPLER_PAIRS; img_smp_index++) { @@ -10080,70 +10571,74 @@ _SOKOL_PRIVATE bool _sg_gl_apply_bindings(_sg_bindings_t* bnd) { } _SG_GL_CHECK_ERROR(); - // if compute-pipeline, early out here - if (bnd->pip->cmn.is_compute) { - return true; - } + if (!bnd->pip->cmn.is_compute) { + // index buffer (can be 0) + const GLuint gl_ib = bnd->ib ? bnd->ib->gl.buf[bnd->ib->cmn.active_slot] : 0; + _sg_gl_cache_bind_buffer(GL_ELEMENT_ARRAY_BUFFER, gl_ib); + _sg.gl.cache.cur_ib_offset = bnd->ib_offset; - // index buffer (can be 0) - const GLuint gl_ib = bnd->ib ? bnd->ib->gl.buf[bnd->ib->cmn.active_slot] : 0; - _sg_gl_cache_bind_buffer(GL_ELEMENT_ARRAY_BUFFER, gl_ib); - _sg.gl.cache.cur_ib_offset = bnd->ib_offset; - - // vertex attributes - for (GLuint attr_index = 0; attr_index < (GLuint)_sg.limits.max_vertex_attrs; attr_index++) { - _sg_gl_attr_t* attr = &bnd->pip->gl.attrs[attr_index]; - _sg_gl_cache_attr_t* cache_attr = &_sg.gl.cache.attrs[attr_index]; - bool cache_attr_dirty = false; - int vb_offset = 0; - GLuint gl_vb = 0; - if (attr->vb_index >= 0) { - // attribute is enabled - SOKOL_ASSERT(attr->vb_index < SG_MAX_VERTEXBUFFER_BINDSLOTS); - _sg_buffer_t* vb = bnd->vbs[attr->vb_index]; - SOKOL_ASSERT(vb); - gl_vb = vb->gl.buf[vb->cmn.active_slot]; - vb_offset = bnd->vb_offsets[attr->vb_index] + attr->offset; - if ((gl_vb != cache_attr->gl_vbuf) || - (attr->size != cache_attr->gl_attr.size) || - (attr->type != cache_attr->gl_attr.type) || - (attr->normalized != cache_attr->gl_attr.normalized) || - (attr->base_type != cache_attr->gl_attr.base_type) || - (attr->stride != cache_attr->gl_attr.stride) || - (vb_offset != cache_attr->gl_attr.offset) || - (cache_attr->gl_attr.divisor != attr->divisor)) - { - _sg_gl_cache_bind_buffer(GL_ARRAY_BUFFER, gl_vb); - if (attr->base_type == SG_SHADERATTRBASETYPE_FLOAT) { - glVertexAttribPointer(attr_index, attr->size, attr->type, attr->normalized, attr->stride, (const GLvoid*)(GLintptr)vb_offset); - } else { - glVertexAttribIPointer(attr_index, attr->size, attr->type, attr->stride, (const GLvoid*)(GLintptr)vb_offset); + // vertex attributes + for (GLuint attr_index = 0; attr_index < (GLuint)_sg.limits.max_vertex_attrs; attr_index++) { + _sg_gl_attr_t* attr = &bnd->pip->gl.attrs[attr_index]; + _sg_gl_cache_attr_t* cache_attr = &_sg.gl.cache.attrs[attr_index]; + bool cache_attr_dirty = false; + int vb_offset = 0; + GLuint gl_vb = 0; + if (attr->vb_index >= 0) { + // attribute is enabled + SOKOL_ASSERT(attr->vb_index < SG_MAX_VERTEXBUFFER_BINDSLOTS); + _sg_buffer_t* vb = bnd->vbs[attr->vb_index]; + SOKOL_ASSERT(vb); + gl_vb = vb->gl.buf[vb->cmn.active_slot]; + vb_offset = bnd->vb_offsets[attr->vb_index] + attr->offset; + if ((gl_vb != cache_attr->gl_vbuf) || + (attr->size != cache_attr->gl_attr.size) || + (attr->type != cache_attr->gl_attr.type) || + (attr->normalized != cache_attr->gl_attr.normalized) || + (attr->base_type != cache_attr->gl_attr.base_type) || + (attr->stride != cache_attr->gl_attr.stride) || + (vb_offset != cache_attr->gl_attr.offset) || + (cache_attr->gl_attr.divisor != attr->divisor)) + { + _sg_gl_cache_bind_buffer(GL_ARRAY_BUFFER, gl_vb); + if (attr->base_type == SG_SHADERATTRBASETYPE_FLOAT) { + glVertexAttribPointer(attr_index, attr->size, attr->type, attr->normalized, attr->stride, (const GLvoid*)(GLintptr)vb_offset); + } else { + glVertexAttribIPointer(attr_index, attr->size, attr->type, attr->stride, (const GLvoid*)(GLintptr)vb_offset); + } + _sg_stats_add(gl.num_vertex_attrib_pointer, 1); + glVertexAttribDivisor(attr_index, (GLuint)attr->divisor); + _sg_stats_add(gl.num_vertex_attrib_divisor, 1); + cache_attr_dirty = true; + } + if (cache_attr->gl_attr.vb_index == -1) { + glEnableVertexAttribArray(attr_index); + _sg_stats_add(gl.num_enable_vertex_attrib_array, 1); + cache_attr_dirty = true; + } + } else { + // attribute is disabled + if (cache_attr->gl_attr.vb_index != -1) { + glDisableVertexAttribArray(attr_index); + _sg_stats_add(gl.num_disable_vertex_attrib_array, 1); + cache_attr_dirty = true; } - _sg_stats_add(gl.num_vertex_attrib_pointer, 1); - glVertexAttribDivisor(attr_index, (GLuint)attr->divisor); - _sg_stats_add(gl.num_vertex_attrib_divisor, 1); - cache_attr_dirty = true; } - if (cache_attr->gl_attr.vb_index == -1) { - glEnableVertexAttribArray(attr_index); - _sg_stats_add(gl.num_enable_vertex_attrib_array, 1); - cache_attr_dirty = true; - } - } else { - // attribute is disabled - if (cache_attr->gl_attr.vb_index != -1) { - glDisableVertexAttribArray(attr_index); - _sg_stats_add(gl.num_disable_vertex_attrib_array, 1); - cache_attr_dirty = true; + if (cache_attr_dirty) { + cache_attr->gl_attr = *attr; + cache_attr->gl_attr.offset = vb_offset; + cache_attr->gl_vbuf = gl_vb; } } - if (cache_attr_dirty) { - cache_attr->gl_attr = *attr; - cache_attr->gl_attr.offset = vb_offset; - cache_attr->gl_vbuf = gl_vb; - } + _SG_GL_CHECK_ERROR(); } + + // take care of storage buffer memory barriers (this needs to happen after the bindings are set) + #if defined(_SOKOL_GL_HAS_COMPUTE) + _sg_gl_handle_memory_barriers(shd, bnd); _SG_GL_CHECK_ERROR(); + #endif + return true; } @@ -10252,7 +10747,7 @@ _SOKOL_PRIVATE void _sg_gl_update_buffer(_sg_buffer_t* buf, const sg_range* data if (++buf->cmn.active_slot >= buf->cmn.num_slots) { buf->cmn.active_slot = 0; } - GLenum gl_tgt = _sg_gl_buffer_target(buf->cmn.type); + GLenum gl_tgt = _sg_gl_buffer_target(&buf->cmn.usage); SOKOL_ASSERT(buf->cmn.active_slot < SG_NUM_INFLIGHT_FRAMES); GLuint gl_buf = buf->gl.buf[buf->cmn.active_slot]; SOKOL_ASSERT(gl_buf); @@ -10271,7 +10766,7 @@ _SOKOL_PRIVATE void _sg_gl_append_buffer(_sg_buffer_t* buf, const sg_range* data buf->cmn.active_slot = 0; } } - GLenum gl_tgt = _sg_gl_buffer_target(buf->cmn.type); + GLenum gl_tgt = _sg_gl_buffer_target(&buf->cmn.usage); SOKOL_ASSERT(buf->cmn.active_slot < SG_NUM_INFLIGHT_FRAMES); GLuint gl_buf = buf->gl.buf[buf->cmn.active_slot]; SOKOL_ASSERT(gl_buf); @@ -10807,78 +11302,72 @@ static inline void _sg_d3d11_ClearState(ID3D11DeviceContext* self) { } //-- enum translation functions ------------------------------------------------ -_SOKOL_PRIVATE D3D11_USAGE _sg_d3d11_usage(sg_usage usg) { - switch (usg) { - case SG_USAGE_IMMUTABLE: +_SOKOL_PRIVATE D3D11_USAGE _sg_d3d11_image_usage(const sg_image_usage* usg) { + if (usg->immutable) { + if (usg->render_attachment || usg->storage_attachment) { + return D3D11_USAGE_DEFAULT; + } else { return D3D11_USAGE_IMMUTABLE; - case SG_USAGE_DYNAMIC: - case SG_USAGE_STREAM: - return D3D11_USAGE_DYNAMIC; - default: - SOKOL_UNREACHABLE; - return (D3D11_USAGE) 0; + } + } else { + return D3D11_USAGE_DYNAMIC; } } -_SOKOL_PRIVATE D3D11_USAGE _sg_d3d11_buffer_usage(sg_usage usg, sg_buffer_type type) { - switch (usg) { - case SG_USAGE_IMMUTABLE: - if (type == SG_BUFFERTYPE_STORAGEBUFFER) { - return D3D11_USAGE_DEFAULT; - } else { - return D3D11_USAGE_IMMUTABLE; - } - case SG_USAGE_DYNAMIC: - case SG_USAGE_STREAM: - return D3D11_USAGE_DYNAMIC; - default: - SOKOL_UNREACHABLE; - return (D3D11_USAGE) 0; +_SOKOL_PRIVATE UINT _sg_d3d11_image_bind_flags(const sg_image_usage* usg, sg_pixel_format fmt) { + UINT res = D3D11_BIND_SHADER_RESOURCE; + if (usg->render_attachment) { + if (_sg_is_depth_or_depth_stencil_format(fmt)) { + res |= D3D11_BIND_DEPTH_STENCIL; + } else { + res |= D3D11_BIND_RENDER_TARGET; + } + } else if (usg->storage_attachment) { + res |= D3D11_BIND_UNORDERED_ACCESS; + } + return res; +} + +_SOKOL_PRIVATE UINT _sg_d3d11_image_cpu_access_flags(const sg_image_usage* usg) { + if (usg->render_attachment || usg->storage_attachment || usg->immutable) { + return 0; + } else { + return D3D11_CPU_ACCESS_WRITE; } } -_SOKOL_PRIVATE UINT _sg_d3d11_buffer_bind_flags(sg_usage usg, sg_buffer_type t) { - switch (t) { - case SG_BUFFERTYPE_VERTEXBUFFER: - return D3D11_BIND_VERTEX_BUFFER; - case SG_BUFFERTYPE_INDEXBUFFER: - return D3D11_BIND_INDEX_BUFFER; - case SG_BUFFERTYPE_STORAGEBUFFER: - if (usg == SG_USAGE_IMMUTABLE) { - return D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_UNORDERED_ACCESS; - } else { - return D3D11_BIND_SHADER_RESOURCE; - } - default: - SOKOL_UNREACHABLE; - return 0; +_SOKOL_PRIVATE D3D11_USAGE _sg_d3d11_buffer_usage(const sg_buffer_usage* usg) { + if (usg->immutable) { + return usg->storage_buffer ? D3D11_USAGE_DEFAULT : D3D11_USAGE_IMMUTABLE; + } else { + return D3D11_USAGE_DYNAMIC; } } -_SOKOL_PRIVATE UINT _sg_d3d11_buffer_misc_flags(sg_buffer_type t) { - switch (t) { - case SG_BUFFERTYPE_VERTEXBUFFER: - case SG_BUFFERTYPE_INDEXBUFFER: - return 0; - case SG_BUFFERTYPE_STORAGEBUFFER: - return D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS; - default: - SOKOL_UNREACHABLE; - return 0; +_SOKOL_PRIVATE UINT _sg_d3d11_buffer_bind_flags(const sg_buffer_usage* usg) { + UINT res = 0; + if (usg->vertex_buffer) { + res |= D3D11_BIND_VERTEX_BUFFER; } + if (usg->index_buffer) { + res |= D3D11_BIND_INDEX_BUFFER; + } + if (usg->storage_buffer) { + if (usg->immutable) { + res |= D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_UNORDERED_ACCESS; + } else { + res |= D3D11_BIND_SHADER_RESOURCE; + } + } + return res; } -_SOKOL_PRIVATE UINT _sg_d3d11_cpu_access_flags(sg_usage usg) { - switch (usg) { - case SG_USAGE_IMMUTABLE: - return 0; - case SG_USAGE_DYNAMIC: - case SG_USAGE_STREAM: - return D3D11_CPU_ACCESS_WRITE; - default: - SOKOL_UNREACHABLE; - return 0; - } +_SOKOL_PRIVATE UINT _sg_d3d11_buffer_misc_flags(const sg_buffer_usage* usg) { + return usg->storage_buffer ? D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS : 0; +} + +_SOKOL_PRIVATE UINT _sg_d3d11_buffer_cpu_access_flags(const sg_buffer_usage* usg) { + return usg->immutable ? 0 : D3D11_CPU_ACCESS_WRITE; } _SOKOL_PRIVATE DXGI_FORMAT _sg_d3d11_texture_pixel_format(sg_pixel_format fmt) { @@ -10962,7 +11451,7 @@ _SOKOL_PRIVATE DXGI_FORMAT _sg_d3d11_dsv_pixel_format(sg_pixel_format fmt) { } } -_SOKOL_PRIVATE DXGI_FORMAT _sg_d3d11_rtv_pixel_format(sg_pixel_format fmt) { +_SOKOL_PRIVATE DXGI_FORMAT _sg_d3d11_rtv_uav_pixel_format(sg_pixel_format fmt) { if (fmt == SG_PIXELFORMAT_DEPTH) { return DXGI_FORMAT_R32_FLOAT; } else if (fmt == SG_PIXELFORMAT_DEPTH_STENCIL) { @@ -11201,10 +11690,10 @@ _SOKOL_PRIVATE void _sg_d3d11_init_caps(void) { // see: https://docs.microsoft.com/en-us/windows/win32/api/d3d11/ne-d3d11-d3d11_format_support for (int fmt = (SG_PIXELFORMAT_NONE+1); fmt < _SG_PIXELFORMAT_NUM; fmt++) { const UINT srv_dxgi_fmt_caps = _sg_d3d11_dxgi_fmt_caps(_sg_d3d11_srv_pixel_format((sg_pixel_format)fmt)); - const UINT rtv_dxgi_fmt_caps = _sg_d3d11_dxgi_fmt_caps(_sg_d3d11_rtv_pixel_format((sg_pixel_format)fmt)); + const UINT rtv_uav_dxgi_fmt_caps = _sg_d3d11_dxgi_fmt_caps(_sg_d3d11_rtv_uav_pixel_format((sg_pixel_format)fmt)); const UINT dsv_dxgi_fmt_caps = _sg_d3d11_dxgi_fmt_caps(_sg_d3d11_dsv_pixel_format((sg_pixel_format)fmt)); _sg_pixelformat_info_t* info = &_sg.formats[fmt]; - const bool render = 0 != (rtv_dxgi_fmt_caps & D3D11_FORMAT_SUPPORT_RENDER_TARGET); + const bool render = 0 != (rtv_uav_dxgi_fmt_caps & D3D11_FORMAT_SUPPORT_RENDER_TARGET); const bool depth = 0 != (dsv_dxgi_fmt_caps & D3D11_FORMAT_SUPPORT_DEPTH_STENCIL); info->sample = 0 != (srv_dxgi_fmt_caps & D3D11_FORMAT_SUPPORT_TEXTURE2D); info->filter = 0 != (srv_dxgi_fmt_caps & D3D11_FORMAT_SUPPORT_SHADER_SAMPLE); @@ -11213,10 +11702,11 @@ _SOKOL_PRIVATE void _sg_d3d11_init_caps(void) { info->blend = 0 != (dsv_dxgi_fmt_caps & D3D11_FORMAT_SUPPORT_BLENDABLE); info->msaa = 0 != (dsv_dxgi_fmt_caps & D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET); } else { - info->blend = 0 != (rtv_dxgi_fmt_caps & D3D11_FORMAT_SUPPORT_BLENDABLE); - info->msaa = 0 != (rtv_dxgi_fmt_caps & D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET); + info->blend = 0 != (rtv_uav_dxgi_fmt_caps & D3D11_FORMAT_SUPPORT_BLENDABLE); + info->msaa = 0 != (rtv_uav_dxgi_fmt_caps & D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET); } - info->depth = depth; + info->depth = depth; + info->read = info->write = 0 != (rtv_uav_dxgi_fmt_caps & D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW); } } @@ -11252,32 +11742,22 @@ _SOKOL_PRIVATE sg_resource_state _sg_d3d11_create_buffer(_sg_buffer_t* buf, cons if (injected) { buf->d3d11.buf = (ID3D11Buffer*) desc->d3d11_buffer; _sg_d3d11_AddRef(buf->d3d11.buf); - // FIXME: for storage buffers also need to inject resource view } else { D3D11_BUFFER_DESC d3d11_buf_desc; _sg_clear(&d3d11_buf_desc, sizeof(d3d11_buf_desc)); d3d11_buf_desc.ByteWidth = (UINT)buf->cmn.size; - d3d11_buf_desc.Usage = _sg_d3d11_buffer_usage(buf->cmn.usage, buf->cmn.type); - d3d11_buf_desc.BindFlags = _sg_d3d11_buffer_bind_flags(buf->cmn.usage, buf->cmn.type); - d3d11_buf_desc.CPUAccessFlags = _sg_d3d11_cpu_access_flags(buf->cmn.usage); - d3d11_buf_desc.MiscFlags = _sg_d3d11_buffer_misc_flags(buf->cmn.type); + d3d11_buf_desc.Usage = _sg_d3d11_buffer_usage(&buf->cmn.usage); + d3d11_buf_desc.BindFlags = _sg_d3d11_buffer_bind_flags(&buf->cmn.usage); + d3d11_buf_desc.CPUAccessFlags = _sg_d3d11_buffer_cpu_access_flags(&buf->cmn.usage); + d3d11_buf_desc.MiscFlags = _sg_d3d11_buffer_misc_flags(&buf->cmn.usage); D3D11_SUBRESOURCE_DATA* init_data_ptr = 0; D3D11_SUBRESOURCE_DATA init_data; _sg_clear(&init_data, sizeof(init_data)); - if (buf->cmn.usage == SG_USAGE_IMMUTABLE) { - // D3D11 doesn't allow creating immutable buffers without data, so need - // to explicitly provide a zero-initialized memory buffer - if (desc->data.ptr) { - init_data.pSysMem = desc->data.ptr; - } else { - init_data.pSysMem = (const void*)_sg_malloc_clear((size_t)buf->cmn.size); - } + if (desc->data.ptr) { + init_data.pSysMem = desc->data.ptr; init_data_ptr = &init_data; } HRESULT hr = _sg_d3d11_CreateBuffer(_sg.d3d11.dev, &d3d11_buf_desc, init_data_ptr, &buf->d3d11.buf); - if (init_data.pSysMem && (desc->data.ptr == 0)) { - _sg_free((void*)init_data.pSysMem); - } if (!(SUCCEEDED(hr) && buf->d3d11.buf)) { _SG_ERROR(D3D11_CREATE_BUFFER_FAILED); return SG_RESOURCESTATE_FAILED; @@ -11286,7 +11766,7 @@ _SOKOL_PRIVATE sg_resource_state _sg_d3d11_create_buffer(_sg_buffer_t* buf, cons // for storage buffers need to create a shader-resource-view // for read-only access, and an unordered-access-view for // read-write access - if (buf->cmn.type == SG_BUFFERTYPE_STORAGEBUFFER) { + if (buf->cmn.usage.storage_buffer) { SOKOL_ASSERT(_sg_multiple_u64((uint64_t)buf->cmn.size, 4)); D3D11_SHADER_RESOURCE_VIEW_DESC d3d11_srv_desc; _sg_clear(&d3d11_srv_desc, sizeof(d3d11_srv_desc)); @@ -11300,7 +11780,7 @@ _SOKOL_PRIVATE sg_resource_state _sg_d3d11_create_buffer(_sg_buffer_t* buf, cons _SG_ERROR(D3D11_CREATE_BUFFER_SRV_FAILED); return SG_RESOURCESTATE_FAILED; } - if (buf->cmn.usage == SG_USAGE_IMMUTABLE) { + if (buf->cmn.usage.immutable) { D3D11_UNORDERED_ACCESS_VIEW_DESC d3d11_uav_desc; _sg_clear(&d3d11_uav_desc, sizeof(d3d11_uav_desc)); d3d11_uav_desc.Format = DXGI_FORMAT_R32_TYPELESS; @@ -11377,7 +11857,7 @@ _SOKOL_PRIVATE sg_resource_state _sg_d3d11_create_image(_sg_image_t* img, const // prepare initial content pointers D3D11_SUBRESOURCE_DATA* init_data = 0; - if (!injected && (img->cmn.usage == SG_USAGE_IMMUTABLE) && !img->cmn.render_target) { + if (!injected && desc->data.subimage[0][0].ptr) { _sg_d3d11_fill_subres_data(img, &desc->data); init_data = _sg.d3d11.subres_data; } @@ -11404,23 +11884,12 @@ _SOKOL_PRIVATE sg_resource_state _sg_d3d11_create_image(_sg_image_t* img, const default: d3d11_tex_desc.ArraySize = 1; break; } d3d11_tex_desc.Format = img->d3d11.format; - d3d11_tex_desc.BindFlags = D3D11_BIND_SHADER_RESOURCE; - if (img->cmn.render_target) { - d3d11_tex_desc.Usage = D3D11_USAGE_DEFAULT; - if (_sg_is_depth_or_depth_stencil_format(img->cmn.pixel_format)) { - d3d11_tex_desc.BindFlags |= D3D11_BIND_DEPTH_STENCIL; - } else { - d3d11_tex_desc.BindFlags |= D3D11_BIND_RENDER_TARGET; - } - d3d11_tex_desc.CPUAccessFlags = 0; - } else { - d3d11_tex_desc.Usage = _sg_d3d11_usage(img->cmn.usage); - d3d11_tex_desc.CPUAccessFlags = _sg_d3d11_cpu_access_flags(img->cmn.usage); - } + d3d11_tex_desc.BindFlags = _sg_d3d11_image_bind_flags(&img->cmn.usage, img->cmn.pixel_format); + d3d11_tex_desc.Usage = _sg_d3d11_image_usage(&img->cmn.usage); + d3d11_tex_desc.CPUAccessFlags = _sg_d3d11_image_cpu_access_flags(&img->cmn.usage); d3d11_tex_desc.SampleDesc.Count = (UINT)img->cmn.sample_count; d3d11_tex_desc.SampleDesc.Quality = (UINT) (msaa ? D3D11_STANDARD_MULTISAMPLE_PATTERN : 0); d3d11_tex_desc.MiscFlags = (img->cmn.type == SG_IMAGETYPE_CUBE) ? D3D11_RESOURCE_MISC_TEXTURECUBE : 0; - hr = _sg_d3d11_CreateTexture2D(_sg.d3d11.dev, &d3d11_tex_desc, init_data, &img->d3d11.tex2d); if (!(SUCCEEDED(hr) && img->d3d11.tex2d)) { _SG_ERROR(D3D11_CREATE_2D_TEXTURE_FAILED); @@ -11477,15 +11946,9 @@ _SOKOL_PRIVATE sg_resource_state _sg_d3d11_create_image(_sg_image_t* img, const d3d11_tex_desc.Depth = (UINT)img->cmn.num_slices; d3d11_tex_desc.MipLevels = (UINT)img->cmn.num_mipmaps; d3d11_tex_desc.Format = img->d3d11.format; - if (img->cmn.render_target) { - d3d11_tex_desc.Usage = D3D11_USAGE_DEFAULT; - d3d11_tex_desc.BindFlags = D3D11_BIND_RENDER_TARGET; - d3d11_tex_desc.CPUAccessFlags = 0; - } else { - d3d11_tex_desc.Usage = _sg_d3d11_usage(img->cmn.usage); - d3d11_tex_desc.BindFlags = D3D11_BIND_SHADER_RESOURCE; - d3d11_tex_desc.CPUAccessFlags = _sg_d3d11_cpu_access_flags(img->cmn.usage); - } + d3d11_tex_desc.BindFlags = _sg_d3d11_image_bind_flags(&img->cmn.usage, img->cmn.pixel_format); + d3d11_tex_desc.Usage = _sg_d3d11_image_usage(&img->cmn.usage); + d3d11_tex_desc.CPUAccessFlags = _sg_d3d11_image_cpu_access_flags(&img->cmn.usage); if (img->d3d11.format == DXGI_FORMAT_UNKNOWN) { _SG_ERROR(D3D11_CREATE_3D_TEXTURE_UNSUPPORTED_PIXEL_FORMAT); return SG_RESOURCESTATE_FAILED; @@ -11675,6 +12138,12 @@ _SOKOL_PRIVATE bool _sg_d3d11_ensure_hlsl_bindslot_ranges(const sg_shader_desc* return false; } } + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (desc->storage_images[i].hlsl_register_u_n >= _SG_D3D11_MAX_STAGE_UAV_BINDINGS) { + _SG_ERROR(D3D11_STORAGEIMAGE_HLSL_REGISTER_U_OUT_OF_RANGE); + return false; + } + } return true; } @@ -11709,6 +12178,9 @@ _SOKOL_PRIVATE sg_resource_state _sg_d3d11_create_shader(_sg_shader_t* shd, cons for (size_t i = 0; i < SG_MAX_SAMPLER_BINDSLOTS; i++) { shd->d3d11.smp_register_s_n[i] = desc->samplers[i].hlsl_register_s_n; } + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + shd->d3d11.simg_register_u_n[i] = desc->storage_images[i].hlsl_register_u_n; + } // create a D3D constant buffer for each uniform block for (size_t ub_index = 0; ub_index < SG_MAX_UNIFORMBLOCK_BINDSLOTS; ub_index++) { @@ -12033,74 +12505,94 @@ _SOKOL_PRIVATE void _sg_d3d11_discard_pipeline(_sg_pipeline_t* pip) { } } -_SOKOL_PRIVATE sg_resource_state _sg_d3d11_create_attachments(_sg_attachments_t* atts, _sg_image_t** color_images, _sg_image_t** resolve_images, _sg_image_t* ds_img, const sg_attachments_desc* desc) { - SOKOL_ASSERT(atts && desc); - SOKOL_ASSERT(color_images && resolve_images); +_SOKOL_PRIVATE sg_resource_state _sg_d3d11_create_attachments(_sg_attachments_t* atts, const _sg_attachments_ptrs_t* atts_ptrs, const sg_attachments_desc* desc) { + SOKOL_ASSERT(atts && atts_ptrs && desc); SOKOL_ASSERT(_sg.d3d11.dev); // copy image pointers - for (size_t i = 0; i < (size_t)atts->cmn.num_colors; i++) { + for (int i = 0; i < atts->cmn.num_colors; i++) { const sg_attachment_desc* color_desc = &desc->colors[i]; _SOKOL_UNUSED(color_desc); SOKOL_ASSERT(color_desc->image.id != SG_INVALID_ID); SOKOL_ASSERT(0 == atts->d3d11.colors[i].image); - SOKOL_ASSERT(color_images[i] && (color_images[i]->slot.id == color_desc->image.id)); - SOKOL_ASSERT(_sg_is_valid_rendertarget_color_format(color_images[i]->cmn.pixel_format)); - atts->d3d11.colors[i].image = color_images[i]; + SOKOL_ASSERT(atts_ptrs->color_images[i]); + _sg_image_t* clr_img = atts_ptrs->color_images[i]; + SOKOL_ASSERT(clr_img->slot.id == color_desc->image.id); + SOKOL_ASSERT(_sg_is_valid_attachment_color_format(clr_img->cmn.pixel_format)); + atts->d3d11.colors[i].image = clr_img; const sg_attachment_desc* resolve_desc = &desc->resolves[i]; if (resolve_desc->image.id != SG_INVALID_ID) { SOKOL_ASSERT(0 == atts->d3d11.resolves[i].image); - SOKOL_ASSERT(resolve_images[i] && (resolve_images[i]->slot.id == resolve_desc->image.id)); - SOKOL_ASSERT(color_images[i] && (color_images[i]->cmn.pixel_format == resolve_images[i]->cmn.pixel_format)); - atts->d3d11.resolves[i].image = resolve_images[i]; + SOKOL_ASSERT(atts_ptrs->resolve_images[i]); + _sg_image_t* rsv_img = atts_ptrs->resolve_images[i]; + SOKOL_ASSERT(rsv_img->slot.id == resolve_desc->image.id); + SOKOL_ASSERT(clr_img->cmn.pixel_format == rsv_img->cmn.pixel_format); + atts->d3d11.resolves[i].image = rsv_img; } } SOKOL_ASSERT(0 == atts->d3d11.depth_stencil.image); const sg_attachment_desc* ds_desc = &desc->depth_stencil; if (ds_desc->image.id != SG_INVALID_ID) { - SOKOL_ASSERT(ds_img && (ds_img->slot.id == ds_desc->image.id)); - SOKOL_ASSERT(_sg_is_valid_rendertarget_depth_format(ds_img->cmn.pixel_format)); + SOKOL_ASSERT(atts_ptrs->ds_image); + _sg_image_t* ds_img = atts_ptrs->ds_image; + SOKOL_ASSERT(ds_img->slot.id == ds_desc->image.id); + SOKOL_ASSERT(_sg_is_valid_attachment_depth_format(ds_img->cmn.pixel_format)); atts->d3d11.depth_stencil.image = ds_img; } + for (int i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + const sg_attachment_desc* storage_desc = &desc->storages[i]; + if (storage_desc->image.id != SG_INVALID_ID) { + SOKOL_ASSERT(0 == atts->d3d11.storages[i].image); + SOKOL_ASSERT(atts_ptrs->storage_images[i]); + _sg_image_t* stg_img = atts_ptrs->storage_images[i]; + SOKOL_ASSERT(stg_img->slot.id == storage_desc->image.id); + atts->d3d11.storages[i].image = stg_img; + } + } // create render-target views - for (size_t i = 0; i < (size_t)atts->cmn.num_colors; i++) { + for (int i = 0; i < atts->cmn.num_colors; i++) { const _sg_attachment_common_t* cmn_color_att = &atts->cmn.colors[i]; - const _sg_image_t* color_img = color_images[i]; + const _sg_image_t* clr_img = atts_ptrs->color_images[i]; SOKOL_ASSERT(0 == atts->d3d11.colors[i].view.rtv); - const bool msaa = color_img->cmn.sample_count > 1; + const bool msaa = clr_img->cmn.sample_count > 1; D3D11_RENDER_TARGET_VIEW_DESC d3d11_rtv_desc; _sg_clear(&d3d11_rtv_desc, sizeof(d3d11_rtv_desc)); - d3d11_rtv_desc.Format = _sg_d3d11_rtv_pixel_format(color_img->cmn.pixel_format); - if (color_img->cmn.type == SG_IMAGETYPE_2D) { - if (msaa) { - d3d11_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DMS; - } else { - d3d11_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; - d3d11_rtv_desc.Texture2D.MipSlice = (UINT)cmn_color_att->mip_level; - } - } else if ((color_img->cmn.type == SG_IMAGETYPE_CUBE) || (color_img->cmn.type == SG_IMAGETYPE_ARRAY)) { - if (msaa) { - d3d11_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY; - d3d11_rtv_desc.Texture2DMSArray.FirstArraySlice = (UINT)cmn_color_att->slice; - d3d11_rtv_desc.Texture2DMSArray.ArraySize = 1; - } else { - d3d11_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DARRAY; - d3d11_rtv_desc.Texture2DArray.MipSlice = (UINT)cmn_color_att->mip_level; - d3d11_rtv_desc.Texture2DArray.FirstArraySlice = (UINT)cmn_color_att->slice; - d3d11_rtv_desc.Texture2DArray.ArraySize = 1; - } - } else { - SOKOL_ASSERT(color_img->cmn.type == SG_IMAGETYPE_3D); - SOKOL_ASSERT(!msaa); - d3d11_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE3D; - d3d11_rtv_desc.Texture3D.MipSlice = (UINT)cmn_color_att->mip_level; - d3d11_rtv_desc.Texture3D.FirstWSlice = (UINT)cmn_color_att->slice; - d3d11_rtv_desc.Texture3D.WSize = 1; + d3d11_rtv_desc.Format = _sg_d3d11_rtv_uav_pixel_format(clr_img->cmn.pixel_format); + switch (clr_img->cmn.type) { + case SG_IMAGETYPE_2D: + if (msaa) { + d3d11_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DMS; + } else { + d3d11_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; + d3d11_rtv_desc.Texture2D.MipSlice = (UINT)cmn_color_att->mip_level; + } + break; + case SG_IMAGETYPE_CUBE: + case SG_IMAGETYPE_ARRAY: + if (msaa) { + d3d11_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY; + d3d11_rtv_desc.Texture2DMSArray.FirstArraySlice = (UINT)cmn_color_att->slice; + d3d11_rtv_desc.Texture2DMSArray.ArraySize = 1; + } else { + d3d11_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DARRAY; + d3d11_rtv_desc.Texture2DArray.MipSlice = (UINT)cmn_color_att->mip_level; + d3d11_rtv_desc.Texture2DArray.FirstArraySlice = (UINT)cmn_color_att->slice; + d3d11_rtv_desc.Texture2DArray.ArraySize = 1; + } + break; + case SG_IMAGETYPE_3D: + SOKOL_ASSERT(!msaa); + d3d11_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE3D; + d3d11_rtv_desc.Texture3D.MipSlice = (UINT)cmn_color_att->mip_level; + d3d11_rtv_desc.Texture3D.FirstWSlice = (UINT)cmn_color_att->slice; + d3d11_rtv_desc.Texture3D.WSize = 1; + break; + default: SOKOL_UNREACHABLE; break; } - SOKOL_ASSERT(color_img->d3d11.res); - HRESULT hr = _sg_d3d11_CreateRenderTargetView(_sg.d3d11.dev, color_img->d3d11.res, &d3d11_rtv_desc, &atts->d3d11.colors[i].view.rtv); + SOKOL_ASSERT(clr_img->d3d11.res); + HRESULT hr = _sg_d3d11_CreateRenderTargetView(_sg.d3d11.dev, clr_img->d3d11.res, &d3d11_rtv_desc, &atts->d3d11.colors[i].view.rtv); if (!(SUCCEEDED(hr) && atts->d3d11.colors[i].view.rtv)) { _SG_ERROR(D3D11_CREATE_RTV_FAILED); return SG_RESOURCESTATE_FAILED; @@ -12110,29 +12602,35 @@ _SOKOL_PRIVATE sg_resource_state _sg_d3d11_create_attachments(_sg_attachments_t* SOKOL_ASSERT(0 == atts->d3d11.depth_stencil.view.dsv); if (ds_desc->image.id != SG_INVALID_ID) { const _sg_attachment_common_t* cmn_ds_att = &atts->cmn.depth_stencil; + _sg_image_t* ds_img = atts_ptrs->ds_image; const bool msaa = ds_img->cmn.sample_count > 1; D3D11_DEPTH_STENCIL_VIEW_DESC d3d11_dsv_desc; _sg_clear(&d3d11_dsv_desc, sizeof(d3d11_dsv_desc)); d3d11_dsv_desc.Format = _sg_d3d11_dsv_pixel_format(ds_img->cmn.pixel_format); SOKOL_ASSERT(ds_img && ds_img->cmn.type != SG_IMAGETYPE_3D); - if (ds_img->cmn.type == SG_IMAGETYPE_2D) { - if (msaa) { - d3d11_dsv_desc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DMS; - } else { - d3d11_dsv_desc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D; - d3d11_dsv_desc.Texture2D.MipSlice = (UINT)cmn_ds_att->mip_level; - } - } else if ((ds_img->cmn.type == SG_IMAGETYPE_CUBE) || (ds_img->cmn.type == SG_IMAGETYPE_ARRAY)) { - if (msaa) { - d3d11_dsv_desc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY; - d3d11_dsv_desc.Texture2DMSArray.FirstArraySlice = (UINT)cmn_ds_att->slice; - d3d11_dsv_desc.Texture2DMSArray.ArraySize = 1; - } else { - d3d11_dsv_desc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DARRAY; - d3d11_dsv_desc.Texture2DArray.MipSlice = (UINT)cmn_ds_att->mip_level; - d3d11_dsv_desc.Texture2DArray.FirstArraySlice = (UINT)cmn_ds_att->slice; - d3d11_dsv_desc.Texture2DArray.ArraySize = 1; - } + switch(ds_img->cmn.type) { + case SG_IMAGETYPE_2D: + if (msaa) { + d3d11_dsv_desc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DMS; + } else { + d3d11_dsv_desc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D; + d3d11_dsv_desc.Texture2D.MipSlice = (UINT)cmn_ds_att->mip_level; + } + break; + case SG_IMAGETYPE_CUBE: + case SG_IMAGETYPE_ARRAY: + if (msaa) { + d3d11_dsv_desc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY; + d3d11_dsv_desc.Texture2DMSArray.FirstArraySlice = (UINT)cmn_ds_att->slice; + d3d11_dsv_desc.Texture2DMSArray.ArraySize = 1; + } else { + d3d11_dsv_desc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DARRAY; + d3d11_dsv_desc.Texture2DArray.MipSlice = (UINT)cmn_ds_att->mip_level; + d3d11_dsv_desc.Texture2DArray.FirstArraySlice = (UINT)cmn_ds_att->slice; + d3d11_dsv_desc.Texture2DArray.ArraySize = 1; + } + break; + default: SOKOL_UNREACHABLE; break; } SOKOL_ASSERT(ds_img->d3d11.res); HRESULT hr = _sg_d3d11_CreateDepthStencilView(_sg.d3d11.dev, ds_img->d3d11.res, &d3d11_dsv_desc, &atts->d3d11.depth_stencil.view.dsv); @@ -12142,6 +12640,47 @@ _SOKOL_PRIVATE sg_resource_state _sg_d3d11_create_attachments(_sg_attachments_t* } _sg_d3d11_setlabel(atts->d3d11.depth_stencil.view.dsv, desc->label); } + + // create storage attachments unordered access views + for (int i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + const _sg_attachment_common_t* cmn_stg_att = &atts->cmn.storages[i]; + const _sg_image_t* stg_img = atts_ptrs->storage_images[i]; + if (!stg_img) { + continue; + } + SOKOL_ASSERT(stg_img->cmn.sample_count == 1); + SOKOL_ASSERT(0 == atts->d3d11.storages[i].view.uav); + D3D11_UNORDERED_ACCESS_VIEW_DESC d3d11_uav_desc; + _sg_clear(&d3d11_uav_desc, sizeof(d3d11_uav_desc)); + d3d11_uav_desc.Format = _sg_d3d11_rtv_uav_pixel_format(stg_img->cmn.pixel_format); + switch (stg_img->cmn.type) { + case SG_IMAGETYPE_2D: + d3d11_uav_desc.ViewDimension = D3D11_UAV_DIMENSION_TEXTURE2D; + d3d11_uav_desc.Texture2D.MipSlice = (UINT)cmn_stg_att->mip_level; + break; + case SG_IMAGETYPE_CUBE: + case SG_IMAGETYPE_ARRAY: + d3d11_uav_desc.ViewDimension = D3D11_UAV_DIMENSION_TEXTURE2DARRAY; + d3d11_uav_desc.Texture2DArray.MipSlice = (UINT)cmn_stg_att->mip_level; + d3d11_uav_desc.Texture2DArray.FirstArraySlice = (UINT)cmn_stg_att->slice; + d3d11_uav_desc.Texture2DArray.ArraySize = 1; + break; + case SG_IMAGETYPE_3D: + d3d11_uav_desc.ViewDimension = D3D11_UAV_DIMENSION_TEXTURE3D; + d3d11_uav_desc.Texture3D.MipSlice = (UINT)cmn_stg_att->mip_level; + d3d11_uav_desc.Texture3D.FirstWSlice = (UINT)cmn_stg_att->slice; + d3d11_uav_desc.Texture3D.WSize = 1; + break; + default: SOKOL_UNREACHABLE; break; + } + SOKOL_ASSERT(stg_img->d3d11.res); + HRESULT hr = _sg_d3d11_CreateUnorderedAccessView(_sg.d3d11.dev, stg_img->d3d11.res, &d3d11_uav_desc, &atts->d3d11.storages[i].view.uav); + if (!(SUCCEEDED(hr) && atts->d3d11.storages[i].view.uav)) { + _SG_ERROR(D3D11_CREATE_UAV_FAILED); + return SG_RESOURCESTATE_FAILED; + } + _sg_d3d11_setlabel(atts->d3d11.storages[i].view.uav, desc->label); + } return SG_RESOURCESTATE_VALID; } @@ -12158,6 +12697,11 @@ _SOKOL_PRIVATE void _sg_d3d11_discard_attachments(_sg_attachments_t* atts) { if (atts->d3d11.depth_stencil.view.dsv) { _sg_d3d11_Release(atts->d3d11.depth_stencil.view.dsv); } + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (atts->d3d11.storages[i].view.uav) { + _sg_d3d11_Release(atts->d3d11.storages[i].view.uav); + } + } } _SOKOL_PRIVATE _sg_image_t* _sg_d3d11_attachments_color_image(const _sg_attachments_t* atts, int index) { @@ -12175,6 +12719,11 @@ _SOKOL_PRIVATE _sg_image_t* _sg_d3d11_attachments_ds_image(const _sg_attachments return atts->d3d11.depth_stencil.image; } +_SOKOL_PRIVATE _sg_image_t* _sg_d3d11_attachments_storage_image(const _sg_attachments_t* atts, int index) { + SOKOL_ASSERT(atts && (index >= 0) && (index < SG_MAX_STORAGE_ATTACHMENTS)); + return atts->d3d11.storages[index].image; +} + _SOKOL_PRIVATE void _sg_d3d11_begin_pass(const sg_pass* pass) { SOKOL_ASSERT(pass); if (_sg.cur_pass.is_compute) { @@ -12296,7 +12845,7 @@ _SOKOL_PRIVATE void _sg_d3d11_end_pass(void) { SOKOL_ASSERT(d3d11_render_res); SOKOL_ASSERT(d3d11_resolve_res); const sg_pixel_format color_fmt = _sg.cur_pass.swapchain.color_fmt; - _sg_d3d11_ResolveSubresource(_sg.d3d11.ctx, d3d11_resolve_res, 0, d3d11_render_res, 0, _sg_d3d11_rtv_pixel_format(color_fmt)); + _sg_d3d11_ResolveSubresource(_sg.d3d11.ctx, d3d11_resolve_res, 0, d3d11_render_res, 0, _sg_d3d11_rtv_uav_pixel_format(color_fmt)); _sg_d3d11_Release(d3d11_render_res); _sg_d3d11_Release(d3d11_resolve_res); _sg_stats_add(d3d11.pass.num_resolve_subresource, 1); @@ -12332,6 +12881,21 @@ _SOKOL_PRIVATE void _sg_d3d11_apply_scissor_rect(int x, int y, int w, int h, boo _sg_d3d11_RSSetScissorRects(_sg.d3d11.ctx, 1, &rect); } +_SOKOL_PRIVATE void _sg_d3d11_populate_storage_attachment_uavs(_sg_pipeline_t* pip, ID3D11UnorderedAccessView** d3d11_cs_uavs) { + const _sg_attachments_t* atts = _sg.cur_pass.atts; + SOKOL_ASSERT(atts); + const _sg_shader_t* shd = pip->shader; + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (shd->cmn.storage_images[i].stage != SG_SHADERSTAGE_COMPUTE) { + continue; + } + SOKOL_ASSERT(shd->d3d11.simg_register_u_n[i] < _SG_D3D11_MAX_STAGE_UAV_BINDINGS); + SOKOL_ASSERT(atts->d3d11.storages[i].view.uav); + SOKOL_ASSERT(0 == d3d11_cs_uavs[i]); + d3d11_cs_uavs[shd->d3d11.simg_register_u_n[i]] = atts->d3d11.storages[i].view.uav; + } +} + _SOKOL_PRIVATE void _sg_d3d11_apply_pipeline(_sg_pipeline_t* pip) { SOKOL_ASSERT(pip); SOKOL_ASSERT(pip->shader && (pip->cmn.shader_id.id == pip->shader->slot.id)); @@ -12347,6 +12911,14 @@ _SOKOL_PRIVATE void _sg_d3d11_apply_pipeline(_sg_pipeline_t* pip) { _sg_d3d11_CSSetConstantBuffers(_sg.d3d11.ctx, 0, _SG_D3D11_MAX_STAGE_UB_BINDINGS, pip->shader->d3d11.cs_cbufs); _sg_stats_add(d3d11.pipeline.num_cs_set_shader, 1); _sg_stats_add(d3d11.pipeline.num_cs_set_constant_buffers, 1); + + // bind storage attachment UAVs + if (_sg.cur_pass.atts) { + ID3D11UnorderedAccessView* d3d11_cs_uavs[_SG_D3D11_MAX_STAGE_UAV_BINDINGS] = {0}; + _sg_d3d11_populate_storage_attachment_uavs(pip, d3d11_cs_uavs); + _sg_d3d11_CSSetUnorderedAccessViews(_sg.d3d11.ctx, 0, _SG_D3D11_MAX_STAGE_UAV_BINDINGS, d3d11_cs_uavs, NULL); + _sg_stats_add(d3d11.bindings.num_cs_set_unordered_access_views, 1); + } } else { // a render pipeline SOKOL_ASSERT(pip->d3d11.rs && pip->d3d11.bs && pip->d3d11.dss); @@ -12377,7 +12949,7 @@ _SOKOL_PRIVATE void _sg_d3d11_apply_pipeline(_sg_pipeline_t* pip) { } } -_SOKOL_PRIVATE bool _sg_d3d11_apply_bindings(_sg_bindings_t* bnd) { +_SOKOL_PRIVATE bool _sg_d3d11_apply_bindings(_sg_bindings_ptrs_t* bnd) { SOKOL_ASSERT(bnd); SOKOL_ASSERT(bnd->pip && bnd->pip->shader); SOKOL_ASSERT(bnd->pip->shader->slot.id == bnd->pip->cmn.shader_id.id); @@ -12471,6 +13043,10 @@ _SOKOL_PRIVATE bool _sg_d3d11_apply_bindings(_sg_bindings_t* bnd) { } } if (is_compute) { + // in a compute pass with storage attachments, also need to rebind the storage attachments + if (_sg.cur_pass.atts) { + _sg_d3d11_populate_storage_attachment_uavs(bnd->pip, d3d11_cs_uavs); + } _sg_d3d11_CSSetShaderResources(_sg.d3d11.ctx, 0, _SG_D3D11_MAX_STAGE_SRV_BINDINGS, d3d11_cs_srvs); _sg_d3d11_CSSetSamplers(_sg.d3d11.ctx, 0, _SG_D3D11_MAX_STAGE_SMP_BINDINGS, d3d11_cs_smps); _sg_d3d11_CSSetUnorderedAccessViews(_sg.d3d11.ctx, 0, _SG_D3D11_MAX_STAGE_UAV_BINDINGS, d3d11_cs_uavs, NULL); @@ -12689,16 +13265,11 @@ _SOKOL_PRIVATE MTLResourceOptions _sg_mtl_resource_options_storage_mode_managed_ #endif } -_SOKOL_PRIVATE MTLResourceOptions _sg_mtl_buffer_resource_options(sg_usage usg) { - switch (usg) { - case SG_USAGE_IMMUTABLE: - return _sg_mtl_resource_options_storage_mode_managed_or_shared(); - case SG_USAGE_DYNAMIC: - case SG_USAGE_STREAM: - return MTLResourceCPUCacheModeWriteCombined | _sg_mtl_resource_options_storage_mode_managed_or_shared(); - default: - SOKOL_UNREACHABLE; - return 0; +_SOKOL_PRIVATE MTLResourceOptions _sg_mtl_buffer_resource_options(const sg_buffer_usage* usage) { + if (usage->immutable) { + return _sg_mtl_resource_options_storage_mode_managed_or_shared(); + } else { + return MTLResourceCPUCacheModeWriteCombined | _sg_mtl_resource_options_storage_mode_managed_or_shared(); } } @@ -12940,11 +13511,12 @@ _SOKOL_PRIVATE int _sg_mtl_index_size(sg_index_type t) { } } -_SOKOL_PRIVATE MTLTextureType _sg_mtl_texture_type(sg_image_type t) { +_SOKOL_PRIVATE MTLTextureType _sg_mtl_texture_type(sg_image_type t, bool msaa) { switch (t) { - case SG_IMAGETYPE_2D: return MTLTextureType2D; + case SG_IMAGETYPE_2D: return msaa ? MTLTextureType2DMultisample : MTLTextureType2D; case SG_IMAGETYPE_CUBE: return MTLTextureTypeCube; case SG_IMAGETYPE_3D: return MTLTextureType3D; + // NOTE: MTLTextureType2DMultisampleArray requires macOS 10.14+, iOS 14.0+ case SG_IMAGETYPE_ARRAY: return MTLTextureType2DArray; default: SOKOL_UNREACHABLE; return (MTLTextureType)0; } @@ -13290,8 +13862,27 @@ _SOKOL_PRIVATE void _sg_mtl_init_caps(void) { _sg_pixelformat_sf(&_sg.formats[SG_PIXELFORMAT_EAC_RG11SN]); _sg_pixelformat_sf(&_sg.formats[SG_PIXELFORMAT_ASTC_4x4_RGBA]); _sg_pixelformat_sf(&_sg.formats[SG_PIXELFORMAT_ASTC_4x4_SRGBA]); - #endif + + // compute shader access (see: https://github.com/gpuweb/gpuweb/issues/513) + // for now let's use the same conservative set on all backends even though + // some backends are less restrictive + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA8]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA8SN]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA8UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA8SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA16UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA16SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA16F]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_R32UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_R32SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_R32F]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RG32UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RG32SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RG32F]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA32UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA32SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA32F]); } //-- main Metal backend state and functions ------------------------------------ @@ -13373,7 +13964,7 @@ _SOKOL_PRIVATE sg_resource_state _sg_mtl_create_buffer(_sg_buffer_t* buf, const SOKOL_ASSERT(buf && desc); SOKOL_ASSERT(buf->cmn.size > 0); const bool injected = (0 != desc->mtl_buffers[0]); - MTLResourceOptions mtl_options = _sg_mtl_buffer_resource_options(buf->cmn.usage); + MTLResourceOptions mtl_options = _sg_mtl_buffer_resource_options(&buf->cmn.usage); for (int slot = 0; slot < buf->cmn.num_slots; slot++) { id mtl_buf; if (injected) { @@ -13384,7 +13975,6 @@ _SOKOL_PRIVATE sg_resource_state _sg_mtl_create_buffer(_sg_buffer_t* buf, const SOKOL_ASSERT(desc->data.size > 0); mtl_buf = [_sg.mtl.device newBufferWithBytes:desc->data.ptr length:(NSUInteger)buf->cmn.size options:mtl_options]; } else { - // this is guaranteed to zero-initialize the buffer mtl_buf = [_sg.mtl.device newBufferWithLength:(NSUInteger)buf->cmn.size options:mtl_options]; } if (nil == mtl_buf) { @@ -13454,9 +14044,8 @@ _SOKOL_PRIVATE void _sg_mtl_copy_image_data(const _sg_image_t* img, __unsafe_unr } } -// initialize MTLTextureDescriptor with common attributes -_SOKOL_PRIVATE bool _sg_mtl_init_texdesc_common(MTLTextureDescriptor* mtl_desc, _sg_image_t* img) { - mtl_desc.textureType = _sg_mtl_texture_type(img->cmn.type); +_SOKOL_PRIVATE bool _sg_mtl_init_texdesc(MTLTextureDescriptor* mtl_desc, _sg_image_t* img) { + mtl_desc.textureType = _sg_mtl_texture_type(img->cmn.type, img->cmn.sample_count > 1); mtl_desc.pixelFormat = _sg_mtl_pixel_format(img->cmn.pixel_format); if (MTLPixelFormatInvalid == mtl_desc.pixelFormat) { _SG_ERROR(METAL_TEXTURE_FORMAT_NOT_SUPPORTED); @@ -13475,31 +14064,28 @@ _SOKOL_PRIVATE bool _sg_mtl_init_texdesc_common(MTLTextureDescriptor* mtl_desc, } else { mtl_desc.arrayLength = 1; } - mtl_desc.usage = MTLTextureUsageShaderRead; - MTLResourceOptions res_options = 0; - if (img->cmn.usage != SG_USAGE_IMMUTABLE) { - res_options |= MTLResourceCPUCacheModeWriteCombined; - } - res_options |= _sg_mtl_resource_options_storage_mode_managed_or_shared(); - mtl_desc.resourceOptions = res_options; - return true; -} - -// initialize MTLTextureDescriptor with rendertarget attributes -_SOKOL_PRIVATE void _sg_mtl_init_texdesc_rt(MTLTextureDescriptor* mtl_desc, _sg_image_t* img) { - SOKOL_ASSERT(img->cmn.render_target); - _SOKOL_UNUSED(img); - mtl_desc.usage = MTLTextureUsageShaderRead | MTLTextureUsageRenderTarget; - mtl_desc.resourceOptions = MTLResourceStorageModePrivate; -} - -// initialize MTLTextureDescriptor with MSAA attributes -_SOKOL_PRIVATE void _sg_mtl_init_texdesc_rt_msaa(MTLTextureDescriptor* mtl_desc, _sg_image_t* img) { - SOKOL_ASSERT(img->cmn.sample_count > 1); - mtl_desc.usage = MTLTextureUsageShaderRead | MTLTextureUsageRenderTarget; - mtl_desc.resourceOptions = MTLResourceStorageModePrivate; - mtl_desc.textureType = MTLTextureType2DMultisample; mtl_desc.sampleCount = (NSUInteger)img->cmn.sample_count; + + MTLTextureUsage mtl_tex_usage = MTLTextureUsageShaderRead; + if (img->cmn.usage.render_attachment) { + mtl_tex_usage |= MTLTextureUsageRenderTarget; + } else if (img->cmn.usage.storage_attachment) { + mtl_tex_usage |= MTLTextureUsageShaderWrite; + } + mtl_desc.usage = mtl_tex_usage; + + MTLResourceOptions mtl_res_options = 0; + if (img->cmn.usage.render_attachment || img->cmn.usage.storage_attachment) { + mtl_res_options |= MTLResourceStorageModePrivate; + } else { + mtl_res_options |= _sg_mtl_resource_options_storage_mode_managed_or_shared(); + if (!img->cmn.usage.immutable) { + mtl_res_options |= MTLResourceCPUCacheModeWriteCombined; + } + } + mtl_desc.resourceOptions = mtl_res_options; + + return true; } _SOKOL_PRIVATE sg_resource_state _sg_mtl_create_image(_sg_image_t* img, const sg_image_desc* desc) { @@ -13513,17 +14099,10 @@ _SOKOL_PRIVATE sg_resource_state _sg_mtl_create_image(_sg_image_t* img, const sg // initialize a Metal texture descriptor MTLTextureDescriptor* mtl_desc = [[MTLTextureDescriptor alloc] init]; - if (!_sg_mtl_init_texdesc_common(mtl_desc, img)) { + if (!_sg_mtl_init_texdesc(mtl_desc, img)) { _SG_OBJC_RELEASE(mtl_desc); return SG_RESOURCESTATE_FAILED; } - if (img->cmn.render_target) { - if (img->cmn.sample_count > 1) { - _sg_mtl_init_texdesc_rt_msaa(mtl_desc, img); - } else { - _sg_mtl_init_texdesc_rt(mtl_desc, img); - } - } for (int slot = 0; slot < img->cmn.num_slots; slot++) { id mtl_tex; if (injected) { @@ -13536,7 +14115,7 @@ _SOKOL_PRIVATE sg_resource_state _sg_mtl_create_image(_sg_image_t* img, const sg _SG_ERROR(METAL_CREATE_TEXTURE_FAILED); return SG_RESOURCESTATE_FAILED; } - if ((img->cmn.usage == SG_USAGE_IMMUTABLE) && !img->cmn.render_target) { + if (desc->data.subimage[0][0].ptr) { _sg_mtl_copy_image_data(img, mtl_tex, &desc->data); } } @@ -13686,14 +14265,8 @@ _SOKOL_PRIVATE bool _sg_mtl_ensure_msl_bindslot_ranges(const sg_shader_desc* des return false; } } - for (size_t i = 0; i < SG_MAX_STORAGEBUFFER_BINDSLOTS; i++) { - if (desc->storage_buffers[i].msl_buffer_n >= _SG_MTL_MAX_STAGE_UB_SBUF_BINDINGS) { - _SG_ERROR(METAL_STORAGEBUFFER_MSL_BUFFER_SLOT_OUT_OF_RANGE); - return false; - } - } for (size_t i = 0; i < SG_MAX_IMAGE_BINDSLOTS; i++) { - if (desc->images[i].msl_texture_n >= _SG_MTL_MAX_STAGE_IMAGE_BINDINGS) { + if (desc->images[i].msl_texture_n >= _SG_MTL_MAX_STAGE_TEXTURE_BINDINGS) { _SG_ERROR(METAL_IMAGE_MSL_TEXTURE_SLOT_OUT_OF_RANGE); return false; } @@ -13704,6 +14277,18 @@ _SOKOL_PRIVATE bool _sg_mtl_ensure_msl_bindslot_ranges(const sg_shader_desc* des return false; } } + for (size_t i = 0; i < SG_MAX_STORAGEBUFFER_BINDSLOTS; i++) { + if (desc->storage_buffers[i].msl_buffer_n >= _SG_MTL_MAX_STAGE_UB_SBUF_BINDINGS) { + _SG_ERROR(METAL_STORAGEBUFFER_MSL_BUFFER_SLOT_OUT_OF_RANGE); + return false; + } + } + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (desc->storage_images[i].msl_texture_n >= _SG_MTL_MAX_STAGE_TEXTURE_BINDINGS) { + _SG_ERROR(METAL_STORAGEIMAGE_MSL_TEXTURE_SLOT_OUT_OF_RANGE); + return false; + } + } return true; } @@ -13725,15 +14310,18 @@ _SOKOL_PRIVATE sg_resource_state _sg_mtl_create_shader(_sg_shader_t* shd, const for (size_t i = 0; i < SG_MAX_UNIFORMBLOCK_BINDSLOTS; i++) { shd->mtl.ub_buffer_n[i] = desc->uniform_blocks[i].msl_buffer_n; } - for (size_t i = 0; i < SG_MAX_STORAGEBUFFER_BINDSLOTS; i++) { - shd->mtl.sbuf_buffer_n[i] = desc->storage_buffers[i].msl_buffer_n; - } for (size_t i = 0; i < SG_MAX_IMAGE_BINDSLOTS; i++) { shd->mtl.img_texture_n[i] = desc->images[i].msl_texture_n; } for (size_t i = 0; i < SG_MAX_SAMPLER_BINDSLOTS; i++) { shd->mtl.smp_sampler_n[i] = desc->samplers[i].msl_sampler_n; } + for (size_t i = 0; i < SG_MAX_STORAGEBUFFER_BINDSLOTS; i++) { + shd->mtl.sbuf_buffer_n[i] = desc->storage_buffers[i].msl_buffer_n; + } + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + shd->mtl.simg_texture_n[i] = desc->storage_images[i].msl_texture_n; + } // create metal library and function objects bool shd_valid = true; @@ -13950,9 +14538,8 @@ _SOKOL_PRIVATE void _sg_mtl_discard_pipeline(_sg_pipeline_t* pip) { _sg_mtl_release_resource(_sg.frame_index, pip->mtl.dss); } -_SOKOL_PRIVATE sg_resource_state _sg_mtl_create_attachments(_sg_attachments_t* atts, _sg_image_t** color_images, _sg_image_t** resolve_images, _sg_image_t* ds_img, const sg_attachments_desc* desc) { - SOKOL_ASSERT(atts && desc); - SOKOL_ASSERT(color_images && resolve_images); +_SOKOL_PRIVATE sg_resource_state _sg_mtl_create_attachments(_sg_attachments_t* atts, const _sg_attachments_ptrs_t* atts_ptrs, const sg_attachments_desc* desc) { + SOKOL_ASSERT(atts && atts_ptrs && desc); // copy image pointers for (int i = 0; i < atts->cmn.num_colors; i++) { @@ -13960,31 +14547,64 @@ _SOKOL_PRIVATE sg_resource_state _sg_mtl_create_attachments(_sg_attachments_t* a _SOKOL_UNUSED(color_desc); SOKOL_ASSERT(color_desc->image.id != SG_INVALID_ID); SOKOL_ASSERT(0 == atts->mtl.colors[i].image); - SOKOL_ASSERT(color_images[i] && (color_images[i]->slot.id == color_desc->image.id)); - SOKOL_ASSERT(_sg_is_valid_rendertarget_color_format(color_images[i]->cmn.pixel_format)); - atts->mtl.colors[i].image = color_images[i]; - + SOKOL_ASSERT(atts_ptrs->color_images[i]); + _sg_image_t* clr_img = atts_ptrs->color_images[i]; + SOKOL_ASSERT(clr_img->slot.id == color_desc->image.id); + SOKOL_ASSERT(_sg_is_valid_attachment_color_format(clr_img->cmn.pixel_format)); + atts->mtl.colors[i].image = clr_img; const sg_attachment_desc* resolve_desc = &desc->resolves[i]; if (resolve_desc->image.id != SG_INVALID_ID) { SOKOL_ASSERT(0 == atts->mtl.resolves[i].image); - SOKOL_ASSERT(resolve_images[i] && (resolve_images[i]->slot.id == resolve_desc->image.id)); - SOKOL_ASSERT(color_images[i] && (color_images[i]->cmn.pixel_format == resolve_images[i]->cmn.pixel_format)); - atts->mtl.resolves[i].image = resolve_images[i]; + SOKOL_ASSERT(atts_ptrs->resolve_images[i]); + _sg_image_t* rsv_img = atts_ptrs->resolve_images[i]; + SOKOL_ASSERT(rsv_img->slot.id == resolve_desc->image.id); + SOKOL_ASSERT(clr_img->cmn.pixel_format == rsv_img->cmn.pixel_format); + atts->mtl.resolves[i].image = rsv_img; } } SOKOL_ASSERT(0 == atts->mtl.depth_stencil.image); const sg_attachment_desc* ds_desc = &desc->depth_stencil; if (ds_desc->image.id != SG_INVALID_ID) { - SOKOL_ASSERT(ds_img && (ds_img->slot.id == ds_desc->image.id)); - SOKOL_ASSERT(_sg_is_valid_rendertarget_depth_format(ds_img->cmn.pixel_format)); + SOKOL_ASSERT(atts_ptrs->ds_image); + _sg_image_t* ds_img = atts_ptrs->ds_image; + SOKOL_ASSERT(ds_img->slot.id == ds_desc->image.id); + SOKOL_ASSERT(_sg_is_valid_attachment_depth_format(ds_img->cmn.pixel_format)); atts->mtl.depth_stencil.image = ds_img; } + for (int i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + const sg_attachment_desc* storage_desc = &desc->storages[i]; + if (storage_desc->image.id != SG_INVALID_ID) { + SOKOL_ASSERT(0 == atts->mtl.storages[i].image); + SOKOL_ASSERT(atts_ptrs->storage_images[i]); + _sg_image_t* stg_img = atts_ptrs->storage_images[i]; + SOKOL_ASSERT(stg_img->slot.id == storage_desc->image.id); + SOKOL_ASSERT(_sg_is_valid_attachment_storage_format(stg_img->cmn.pixel_format)); + atts->mtl.storages[i].image = stg_img; + } + } + + // create texture views for storage attachments + for (int i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + const _sg_image_t* stg_img = atts->mtl.storages[i].image; + if (stg_img) { + id mtl_tex_view = [_sg_mtl_id(stg_img->mtl.tex[0]) + newTextureViewWithPixelFormat: _sg_mtl_pixel_format(stg_img->cmn.pixel_format) + textureType: _sg_mtl_texture_type(stg_img->cmn.type, false) + levels: NSMakeRange((NSUInteger)atts->cmn.storages[i].mip_level, 1) + slices: NSMakeRange((NSUInteger)atts->cmn.storages[i].slice, 1)]; + atts->mtl.storage_views[i] = _sg_mtl_add_resource(mtl_tex_view); + } + } return SG_RESOURCESTATE_VALID; } _SOKOL_PRIVATE void _sg_mtl_discard_attachments(_sg_attachments_t* atts) { SOKOL_ASSERT(atts); _SOKOL_UNUSED(atts); + for (int i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + // it's valid to call _sg_mtl_release_resource with a null handle + _sg_mtl_release_resource(_sg.frame_index, atts->mtl.storage_views[i]); + } } _SOKOL_PRIVATE _sg_image_t* _sg_mtl_attachments_color_image(const _sg_attachments_t* atts, int index) { @@ -14005,6 +14625,12 @@ _SOKOL_PRIVATE _sg_image_t* _sg_mtl_attachments_ds_image(const _sg_attachments_t return atts->mtl.depth_stencil.image; } +_SOKOL_PRIVATE _sg_image_t* _sg_mtl_attachments_storage_image(const _sg_attachments_t* atts, int index) { + // NOTE: may return null + SOKOL_ASSERT(atts && (index >= 0) && (index < SG_MAX_STORAGE_ATTACHMENTS)); + return atts->mtl.storages[index].image; +} + _SOKOL_PRIVATE void _sg_mtl_bind_uniform_buffers(void) { // In the Metal backend, uniform buffer bindings happen once in sg_begin_pass() and // remain valid for the entire pass. Only binding offsets will be updated @@ -14038,8 +14664,6 @@ _SOKOL_PRIVATE void _sg_mtl_begin_compute_pass(const sg_pass* pass) { SOKOL_ASSERT(nil == _sg.mtl.compute_cmd_encoder); SOKOL_ASSERT(nil == _sg.mtl.render_cmd_encoder); - // NOTE: we actually want computeCommandEncoderWithDispatchType:MTLDispatchTypeConcurrent, but - // that requires bumping the macOS base version to 10.14 _sg.mtl.compute_cmd_encoder = [_sg.mtl.cmd_buffer computeCommandEncoder]; if (nil == _sg.mtl.compute_cmd_encoder) { _sg.cur_pass.valid = false; @@ -14269,10 +14893,12 @@ _SOKOL_PRIVATE void _sg_mtl_end_pass(void) { // NOTE: MTLComputeCommandEncoder is autoreleased _sg.mtl.compute_cmd_encoder = nil; - // synchronize any managed buffers written by the GPU + // synchronize any managed resources written by the GPU + // NOTE: storage attachment images are currently not managed and are not eligible for syncing #if defined(_SG_TARGET_MACOS) if (_sg_mtl_resource_options_storage_mode_managed_or_shared() == MTLResourceStorageModeManaged) { - if (_sg.compute.readwrite_sbufs.cur > 0) { + const bool needs_sync = _sg.compute.readwrite_sbufs.cur > 0; + if (needs_sync) { id blit_cmd_encoder = [_sg.mtl.cmd_buffer blitCommandEncoder]; for (uint32_t i = 0; i < _sg.compute.readwrite_sbufs.cur; i++) { _sg_buffer_t* sbuf = _sg_lookup_buffer(&_sg.pools, _sg.compute.readwrite_sbufs.items[i]); @@ -14351,6 +14977,26 @@ _SOKOL_PRIVATE void _sg_mtl_apply_pipeline(_sg_pipeline_t* pip) { SOKOL_ASSERT(nil != _sg.mtl.compute_cmd_encoder); SOKOL_ASSERT(pip->mtl.cps != _SG_MTL_INVALID_SLOT_INDEX); [_sg.mtl.compute_cmd_encoder setComputePipelineState:_sg_mtl_id(pip->mtl.cps)]; + // apply storage image bindings for writing + if (_sg.cur_pass.atts) { + const _sg_shader_t* shd = pip->shader; + const _sg_attachments_t* atts = _sg.cur_pass.atts; + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + const sg_shader_stage stage = shd->cmn.storage_images[i].stage; + if (stage != SG_SHADERSTAGE_COMPUTE) { + continue; + } + const NSUInteger mtl_slot = shd->mtl.simg_texture_n[i]; + SOKOL_ASSERT(mtl_slot < _SG_MTL_MAX_STAGE_TEXTURE_BINDINGS); + const uint64_t cache_key = ((uint64_t)atts->cmn.storages[i].image_id.id) << 32; + SOKOL_ASSERT(cache_key != 0); + if (_sg.mtl.state_cache.cur_cs_image_ids[mtl_slot] != cache_key) { + _sg.mtl.state_cache.cur_cs_image_ids[mtl_slot] = cache_key; + [_sg.mtl.compute_cmd_encoder setTexture:_sg_mtl_id(atts->mtl.storage_views[i]) atIndex:mtl_slot]; + _sg_stats_add(metal.bindings.num_set_compute_texture, 1); + } + } + } } else { SOKOL_ASSERT(!_sg.cur_pass.is_compute); SOKOL_ASSERT(nil != _sg.mtl.render_cmd_encoder); @@ -14375,7 +15021,7 @@ _SOKOL_PRIVATE void _sg_mtl_apply_pipeline(_sg_pipeline_t* pip) { } } -_SOKOL_PRIVATE bool _sg_mtl_apply_bindings(_sg_bindings_t* bnd) { +_SOKOL_PRIVATE bool _sg_mtl_apply_bindings(_sg_bindings_ptrs_t* bnd) { SOKOL_ASSERT(bnd); SOKOL_ASSERT(bnd->pip); SOKOL_ASSERT(bnd->pip && bnd->pip->shader); @@ -14404,13 +15050,13 @@ _SOKOL_PRIVATE bool _sg_mtl_apply_bindings(_sg_bindings_t* bnd) { const NSUInteger mtl_slot = _sg_mtl_vertexbuffer_bindslot(i); SOKOL_ASSERT(mtl_slot < _SG_MTL_MAX_STAGE_BUFFER_BINDINGS); const int vb_offset = bnd->vb_offsets[i]; - if ((_sg.mtl.state_cache.cur_vs_buffer_ids[mtl_slot].id != vb->slot.id) || + if ((_sg.mtl.state_cache.cur_vs_buffer_ids[mtl_slot] != vb->slot.id) || (_sg.mtl.state_cache.cur_vs_buffer_offsets[mtl_slot] != vb_offset)) { _sg.mtl.state_cache.cur_vs_buffer_offsets[mtl_slot] = vb_offset; - if (_sg.mtl.state_cache.cur_vs_buffer_ids[mtl_slot].id != vb->slot.id) { + if (_sg.mtl.state_cache.cur_vs_buffer_ids[mtl_slot] != vb->slot.id) { // vertex buffer has changed - _sg.mtl.state_cache.cur_vs_buffer_ids[mtl_slot].id = vb->slot.id; + _sg.mtl.state_cache.cur_vs_buffer_ids[mtl_slot] = vb->slot.id; SOKOL_ASSERT(vb->mtl.buf[vb->cmn.active_slot] != _SG_MTL_INVALID_SLOT_INDEX); [_sg.mtl.render_cmd_encoder setVertexBuffer:_sg_mtl_id(vb->mtl.buf[vb->cmn.active_slot]) offset:(NSUInteger)vb_offset @@ -14434,25 +15080,25 @@ _SOKOL_PRIVATE bool _sg_mtl_apply_bindings(_sg_bindings_t* bnd) { const sg_shader_stage stage = shd->cmn.images[i].stage; SOKOL_ASSERT((stage == SG_SHADERSTAGE_VERTEX) || (stage == SG_SHADERSTAGE_FRAGMENT) || (stage == SG_SHADERSTAGE_COMPUTE)); const NSUInteger mtl_slot = shd->mtl.img_texture_n[i]; - SOKOL_ASSERT(mtl_slot < _SG_MTL_MAX_STAGE_IMAGE_BINDINGS); + SOKOL_ASSERT(mtl_slot < _SG_MTL_MAX_STAGE_TEXTURE_BINDINGS); if (stage == SG_SHADERSTAGE_VERTEX) { SOKOL_ASSERT(nil != _sg.mtl.render_cmd_encoder); - if (_sg.mtl.state_cache.cur_vs_image_ids[mtl_slot].id != img->slot.id) { - _sg.mtl.state_cache.cur_vs_image_ids[mtl_slot].id = img->slot.id; + if (_sg.mtl.state_cache.cur_vs_image_ids[mtl_slot] != img->slot.id) { + _sg.mtl.state_cache.cur_vs_image_ids[mtl_slot] = img->slot.id; [_sg.mtl.render_cmd_encoder setVertexTexture:_sg_mtl_id(img->mtl.tex[img->cmn.active_slot]) atIndex:mtl_slot]; _sg_stats_add(metal.bindings.num_set_vertex_texture, 1); } } else if (stage == SG_SHADERSTAGE_FRAGMENT) { SOKOL_ASSERT(nil != _sg.mtl.render_cmd_encoder); - if (_sg.mtl.state_cache.cur_fs_image_ids[mtl_slot].id != img->slot.id) { - _sg.mtl.state_cache.cur_fs_image_ids[mtl_slot].id = img->slot.id; + if (_sg.mtl.state_cache.cur_fs_image_ids[mtl_slot] != img->slot.id) { + _sg.mtl.state_cache.cur_fs_image_ids[mtl_slot] = img->slot.id; [_sg.mtl.render_cmd_encoder setFragmentTexture:_sg_mtl_id(img->mtl.tex[img->cmn.active_slot]) atIndex:mtl_slot]; _sg_stats_add(metal.bindings.num_set_fragment_texture, 1); } } else if (stage == SG_SHADERSTAGE_COMPUTE) { SOKOL_ASSERT(nil != _sg.mtl.compute_cmd_encoder); - if (_sg.mtl.state_cache.cur_cs_image_ids[mtl_slot].id != img->slot.id) { - _sg.mtl.state_cache.cur_cs_image_ids[mtl_slot].id = img->slot.id; + if (_sg.mtl.state_cache.cur_cs_image_ids[mtl_slot] != img->slot.id) { + _sg.mtl.state_cache.cur_cs_image_ids[mtl_slot] = img->slot.id; [_sg.mtl.compute_cmd_encoder setTexture:_sg_mtl_id(img->mtl.tex[img->cmn.active_slot]) atIndex:mtl_slot]; _sg_stats_add(metal.bindings.num_set_compute_texture, 1); } @@ -14472,22 +15118,22 @@ _SOKOL_PRIVATE bool _sg_mtl_apply_bindings(_sg_bindings_t* bnd) { SOKOL_ASSERT(mtl_slot < _SG_MTL_MAX_STAGE_SAMPLER_BINDINGS); if (stage == SG_SHADERSTAGE_VERTEX) { SOKOL_ASSERT(nil != _sg.mtl.render_cmd_encoder); - if (_sg.mtl.state_cache.cur_vs_sampler_ids[mtl_slot].id != smp->slot.id) { - _sg.mtl.state_cache.cur_vs_sampler_ids[mtl_slot].id = smp->slot.id; + if (_sg.mtl.state_cache.cur_vs_sampler_ids[mtl_slot] != smp->slot.id) { + _sg.mtl.state_cache.cur_vs_sampler_ids[mtl_slot] = smp->slot.id; [_sg.mtl.render_cmd_encoder setVertexSamplerState:_sg_mtl_id(smp->mtl.sampler_state) atIndex:mtl_slot]; _sg_stats_add(metal.bindings.num_set_vertex_sampler_state, 1); } } else if (stage == SG_SHADERSTAGE_FRAGMENT) { SOKOL_ASSERT(nil != _sg.mtl.render_cmd_encoder); - if (_sg.mtl.state_cache.cur_fs_sampler_ids[mtl_slot].id != smp->slot.id) { - _sg.mtl.state_cache.cur_fs_sampler_ids[mtl_slot].id = smp->slot.id; + if (_sg.mtl.state_cache.cur_fs_sampler_ids[mtl_slot] != smp->slot.id) { + _sg.mtl.state_cache.cur_fs_sampler_ids[mtl_slot] = smp->slot.id; [_sg.mtl.render_cmd_encoder setFragmentSamplerState:_sg_mtl_id(smp->mtl.sampler_state) atIndex:mtl_slot]; _sg_stats_add(metal.bindings.num_set_fragment_sampler_state, 1); } } else if (stage == SG_SHADERSTAGE_COMPUTE) { SOKOL_ASSERT(nil != _sg.mtl.compute_cmd_encoder); - if (_sg.mtl.state_cache.cur_cs_sampler_ids[mtl_slot].id != smp->slot.id) { - _sg.mtl.state_cache.cur_cs_sampler_ids[mtl_slot].id = smp->slot.id; + if (_sg.mtl.state_cache.cur_cs_sampler_ids[mtl_slot] != smp->slot.id) { + _sg.mtl.state_cache.cur_cs_sampler_ids[mtl_slot] = smp->slot.id; [_sg.mtl.compute_cmd_encoder setSamplerState:_sg_mtl_id(smp->mtl.sampler_state) atIndex:mtl_slot]; _sg_stats_add(metal.bindings.num_set_compute_sampler_state, 1); } @@ -14507,22 +15153,22 @@ _SOKOL_PRIVATE bool _sg_mtl_apply_bindings(_sg_bindings_t* bnd) { SOKOL_ASSERT(mtl_slot < _SG_MTL_MAX_STAGE_UB_SBUF_BINDINGS); if (stage == SG_SHADERSTAGE_VERTEX) { SOKOL_ASSERT(nil != _sg.mtl.render_cmd_encoder); - if (_sg.mtl.state_cache.cur_vs_buffer_ids[mtl_slot].id != sbuf->slot.id) { - _sg.mtl.state_cache.cur_vs_buffer_ids[mtl_slot].id = sbuf->slot.id; + if (_sg.mtl.state_cache.cur_vs_buffer_ids[mtl_slot] != sbuf->slot.id) { + _sg.mtl.state_cache.cur_vs_buffer_ids[mtl_slot] = sbuf->slot.id; [_sg.mtl.render_cmd_encoder setVertexBuffer:_sg_mtl_id(sbuf->mtl.buf[sbuf->cmn.active_slot]) offset:0 atIndex:mtl_slot]; _sg_stats_add(metal.bindings.num_set_vertex_buffer, 1); } } else if (stage == SG_SHADERSTAGE_FRAGMENT) { SOKOL_ASSERT(nil != _sg.mtl.render_cmd_encoder); - if (_sg.mtl.state_cache.cur_fs_buffer_ids[mtl_slot].id != sbuf->slot.id) { - _sg.mtl.state_cache.cur_fs_buffer_ids[mtl_slot].id = sbuf->slot.id; + if (_sg.mtl.state_cache.cur_fs_buffer_ids[mtl_slot] != sbuf->slot.id) { + _sg.mtl.state_cache.cur_fs_buffer_ids[mtl_slot] = sbuf->slot.id; [_sg.mtl.render_cmd_encoder setFragmentBuffer:_sg_mtl_id(sbuf->mtl.buf[sbuf->cmn.active_slot]) offset:0 atIndex:mtl_slot]; _sg_stats_add(metal.bindings.num_set_fragment_buffer, 1); } } else if (stage == SG_SHADERSTAGE_COMPUTE) { SOKOL_ASSERT(nil != _sg.mtl.compute_cmd_encoder); - if (_sg.mtl.state_cache.cur_cs_buffer_ids[mtl_slot].id != sbuf->slot.id) { - _sg.mtl.state_cache.cur_cs_buffer_ids[mtl_slot].id = sbuf->slot.id; + if (_sg.mtl.state_cache.cur_cs_buffer_ids[mtl_slot] != sbuf->slot.id) { + _sg.mtl.state_cache.cur_cs_buffer_ids[mtl_slot] = sbuf->slot.id; [_sg.mtl.compute_cmd_encoder setBuffer:_sg_mtl_id(sbuf->mtl.buf[sbuf->cmn.active_slot]) offset:0 atIndex:mtl_slot]; _sg_stats_add(metal.bindings.num_set_compute_buffer, 1); } @@ -14697,17 +15343,18 @@ _SOKOL_PRIVATE WGPUOptionalBool _sg_wgpu_optional_bool(bool b) { #define _sg_wgpu_optional_bool(b) (b) #endif -_SOKOL_PRIVATE WGPUBufferUsage _sg_wgpu_buffer_usage(sg_buffer_type t, sg_usage u) { - // FIXME: change to WGPUBufferUsage once Emscripten and Dawn webgpu.h agree +_SOKOL_PRIVATE WGPUBufferUsage _sg_wgpu_buffer_usage(const sg_buffer_usage* usg) { int res = 0; - if (SG_BUFFERTYPE_VERTEXBUFFER == t) { - res = WGPUBufferUsage_Vertex; - } else if (SG_BUFFERTYPE_STORAGEBUFFER == t) { - res = WGPUBufferUsage_Storage; - } else { - res = WGPUBufferUsage_Index; + if (usg->vertex_buffer) { + res |= WGPUBufferUsage_Vertex; } - if (SG_USAGE_IMMUTABLE != u) { + if (usg->index_buffer) { + res |= WGPUBufferUsage_Index; + } + if (usg->storage_buffer) { + res |= WGPUBufferUsage_Storage; + } + if (!usg->immutable) { res |= WGPUBufferUsage_CopyDst; } return (WGPUBufferUsage)res; @@ -15178,6 +15825,24 @@ _SOKOL_PRIVATE void _sg_wgpu_init_caps(void) { _sg_pixelformat_sf(&_sg.formats[SG_PIXELFORMAT_ASTC_4x4_RGBA]); _sg_pixelformat_sf(&_sg.formats[SG_PIXELFORMAT_ASTC_4x4_SRGBA]); } + + // see: https://github.com/gpuweb/gpuweb/issues/513 + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA8]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA8SN]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA8UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA8SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA16UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA16SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA16F]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_R32UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_R32SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_R32F]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RG32UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RG32SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RG32F]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA32UI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA32SI]); + _sg_pixelformat_compute_all(&_sg.formats[SG_PIXELFORMAT_RGBA32F]); } _SOKOL_PRIVATE void _sg_wgpu_uniform_buffer_init(const sg_desc* desc) { @@ -15344,7 +16009,7 @@ _SOKOL_PRIVATE uint64_t _sg_wgpu_bindgroups_cache_sbuf_item(uint8_t wgpu_binding return _sg_wgpu_bindgroups_cache_item(_SG_WGPU_BINDGROUPSCACHEITEMTYPE_STORAGEBUFFER, wgpu_binding, id); } -_SOKOL_PRIVATE void _sg_wgpu_init_bindgroups_cache_key(_sg_wgpu_bindgroups_cache_key_t* key, const _sg_bindings_t* bnd) { +_SOKOL_PRIVATE void _sg_wgpu_init_bindgroups_cache_key(_sg_wgpu_bindgroups_cache_key_t* key, const _sg_bindings_ptrs_t* bnd) { SOKOL_ASSERT(bnd); SOKOL_ASSERT(bnd->pip); const _sg_shader_t* shd = bnd->pip->shader; @@ -15403,7 +16068,7 @@ _SOKOL_PRIVATE bool _sg_wgpu_compare_bindgroups_cache_key(_sg_wgpu_bindgroups_ca return true; } -_SOKOL_PRIVATE _sg_wgpu_bindgroup_t* _sg_wgpu_create_bindgroup(_sg_bindings_t* bnd) { +_SOKOL_PRIVATE _sg_wgpu_bindgroup_t* _sg_wgpu_create_bindgroup(_sg_bindings_ptrs_t* bnd) { SOKOL_ASSERT(_sg.wgpu.dev); SOKOL_ASSERT(bnd->pip); const _sg_shader_t* shd = bnd->pip->shader; @@ -15628,7 +16293,7 @@ _SOKOL_PRIVATE void _sg_wgpu_bindings_cache_bg_update(const _sg_wgpu_bindgroup_t } } -_SOKOL_PRIVATE void _sg_wgpu_set_img_smp_sbuf_bindgroup(_sg_wgpu_bindgroup_t* bg) { +_SOKOL_PRIVATE void _sg_wgpu_set_bindgroup(size_t bg_idx, _sg_wgpu_bindgroup_t* bg) { if (_sg_wgpu_bindings_cache_bg_dirty(bg)) { _sg_wgpu_bindings_cache_bg_update(bg); _sg_stats_add(wgpu.bindings.num_set_bindgroup, 1); @@ -15637,18 +16302,18 @@ _SOKOL_PRIVATE void _sg_wgpu_set_img_smp_sbuf_bindgroup(_sg_wgpu_bindgroup_t* bg if (bg) { SOKOL_ASSERT(bg->slot.state == SG_RESOURCESTATE_VALID); SOKOL_ASSERT(bg->bindgroup); - wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_IMG_SMP_SBUF_BINDGROUP_INDEX, bg->bindgroup, 0, 0); + wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, bg_idx, bg->bindgroup, 0, 0); } else { - wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_IMG_SMP_SBUF_BINDGROUP_INDEX, _sg.wgpu.empty_bind_group, 0, 0); + wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, bg_idx, _sg.wgpu.empty_bind_group, 0, 0); } } else { SOKOL_ASSERT(_sg.wgpu.rpass_enc); if (bg) { SOKOL_ASSERT(bg->slot.state == SG_RESOURCESTATE_VALID); SOKOL_ASSERT(bg->bindgroup); - wgpuRenderPassEncoderSetBindGroup(_sg.wgpu.rpass_enc, _SG_WGPU_IMG_SMP_SBUF_BINDGROUP_INDEX, bg->bindgroup, 0, 0); + wgpuRenderPassEncoderSetBindGroup(_sg.wgpu.rpass_enc, bg_idx, bg->bindgroup, 0, 0); } else { - wgpuRenderPassEncoderSetBindGroup(_sg.wgpu.rpass_enc, _SG_WGPU_IMG_SMP_SBUF_BINDGROUP_INDEX, _sg.wgpu.empty_bind_group, 0, 0); + wgpuRenderPassEncoderSetBindGroup(_sg.wgpu.rpass_enc, bg_idx, _sg.wgpu.empty_bind_group, 0, 0); } } } else { @@ -15656,7 +16321,7 @@ _SOKOL_PRIVATE void _sg_wgpu_set_img_smp_sbuf_bindgroup(_sg_wgpu_bindgroup_t* bg } } -_SOKOL_PRIVATE bool _sg_wgpu_apply_bindgroup(_sg_bindings_t* bnd) { +_SOKOL_PRIVATE bool _sg_wgpu_apply_bindings_bindgroup(_sg_bindings_ptrs_t* bnd) { if (!_sg.desc.wgpu_disable_bindgroups_cache) { _sg_wgpu_bindgroup_t* bg = 0; _sg_wgpu_bindgroups_cache_key_t key; @@ -15684,7 +16349,7 @@ _SOKOL_PRIVATE bool _sg_wgpu_apply_bindgroup(_sg_bindings_t* bnd) { _sg_wgpu_bindgroups_cache_set(key.hash, bg->slot.id); } if (bg && bg->slot.state == SG_RESOURCESTATE_VALID) { - _sg_wgpu_set_img_smp_sbuf_bindgroup(bg); + _sg_wgpu_set_bindgroup(_SG_WGPU_IMG_SMP_SBUF_BINDGROUP_INDEX, bg); } else { return false; } @@ -15693,7 +16358,7 @@ _SOKOL_PRIVATE bool _sg_wgpu_apply_bindgroup(_sg_bindings_t* bnd) { _sg_wgpu_bindgroup_t* bg = _sg_wgpu_create_bindgroup(bnd); if (bg) { if (bg->slot.state == SG_RESOURCESTATE_VALID) { - _sg_wgpu_set_img_smp_sbuf_bindgroup(bg); + _sg_wgpu_set_bindgroup(_SG_WGPU_IMG_SMP_SBUF_BINDGROUP_INDEX, bg); } _sg_wgpu_discard_bindgroup(bg); } else { @@ -15703,7 +16368,7 @@ _SOKOL_PRIVATE bool _sg_wgpu_apply_bindgroup(_sg_bindings_t* bnd) { return true; } -_SOKOL_PRIVATE bool _sg_wgpu_apply_index_buffer(_sg_bindings_t* bnd) { +_SOKOL_PRIVATE bool _sg_wgpu_apply_index_buffer(_sg_bindings_ptrs_t* bnd) { SOKOL_ASSERT(_sg.wgpu.rpass_enc); const _sg_buffer_t* ib = bnd->ib; uint64_t offset = (uint64_t)bnd->ib_offset; @@ -15727,7 +16392,7 @@ _SOKOL_PRIVATE bool _sg_wgpu_apply_index_buffer(_sg_bindings_t* bnd) { return true; } -_SOKOL_PRIVATE bool _sg_wgpu_apply_vertex_buffers(_sg_bindings_t* bnd) { +_SOKOL_PRIVATE bool _sg_wgpu_apply_vertex_buffers(_sg_bindings_ptrs_t* bnd) { SOKOL_ASSERT(_sg.wgpu.rpass_enc); for (uint32_t slot = 0; slot < SG_MAX_VERTEXBUFFER_BINDSLOTS; slot++) { const _sg_buffer_t* vb = bnd->vbs[slot]; @@ -15815,11 +16480,11 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_buffer(_sg_buffer_t* buf, const // buffer mapping size must be multiple of 4, so round up buffer size (only a problem // with index buffers containing odd number of indices) const uint64_t wgpu_buf_size = _sg_roundup_u64((uint64_t)buf->cmn.size, 4); - const bool map_at_creation = (SG_USAGE_IMMUTABLE == buf->cmn.usage) && (desc->data.ptr); + const bool map_at_creation = buf->cmn.usage.immutable && (desc->data.ptr); WGPUBufferDescriptor wgpu_buf_desc; _sg_clear(&wgpu_buf_desc, sizeof(wgpu_buf_desc)); - wgpu_buf_desc.usage = _sg_wgpu_buffer_usage(buf->cmn.type, buf->cmn.usage); + wgpu_buf_desc.usage = _sg_wgpu_buffer_usage(&buf->cmn.usage); wgpu_buf_desc.size = wgpu_buf_size; wgpu_buf_desc.mappedAtCreation = map_at_creation; wgpu_buf_desc.label = _sg_wgpu_stringview(desc->label); @@ -15844,7 +16509,7 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_buffer(_sg_buffer_t* buf, const _SOKOL_PRIVATE void _sg_wgpu_discard_buffer(_sg_buffer_t* buf) { SOKOL_ASSERT(buf); - if (buf->cmn.type == SG_BUFFERTYPE_STORAGEBUFFER) { + if (buf->cmn.usage.storage_buffer) { _sg_wgpu_bindgroups_cache_invalidate(_SG_WGPU_BINDGROUPSCACHEITEMTYPE_STORAGEBUFFER, buf->slot.id); } if (buf->wgpu.buf) { @@ -15933,9 +16598,12 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_image(_sg_image_t* img, const s _sg_clear(&wgpu_tex_desc, sizeof(wgpu_tex_desc)); wgpu_tex_desc.label = _sg_wgpu_stringview(desc->label); wgpu_tex_desc.usage = WGPUTextureUsage_TextureBinding|WGPUTextureUsage_CopyDst; - if (desc->render_target) { + if (desc->usage.render_attachment) { wgpu_tex_desc.usage |= WGPUTextureUsage_RenderAttachment; } + if (desc->usage.storage_attachment) { + wgpu_tex_desc.usage |= WGPUTextureUsage_StorageBinding; + } wgpu_tex_desc.dimension = _sg_wgpu_texture_dimension(img->cmn.type); wgpu_tex_desc.size.width = (uint32_t) img->cmn.width; wgpu_tex_desc.size.height = (uint32_t) img->cmn.height; @@ -15952,7 +16620,7 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_image(_sg_image_t* img, const s _SG_ERROR(WGPU_CREATE_TEXTURE_FAILED); return SG_RESOURCESTATE_FAILED; } - if ((img->cmn.usage == SG_USAGE_IMMUTABLE) && !img->cmn.render_target) { + if (desc->data.subimage[0][0].ptr) { _sg_wgpu_copy_image_data(img, img->wgpu.tex, &desc->data); } WGPUTextureViewDescriptor wgpu_texview_desc; @@ -16109,6 +16777,11 @@ _SOKOL_PRIVATE bool _sg_wgpu_ensure_wgsl_bindslot_ranges(const sg_shader_desc* d return false; } } + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (desc->storage_images[i].wgsl_group2_binding_n >= _SG_WGPU_MAX_SIMG_BIND_SLOTS) { + _SG_ERROR(WGPU_STORAGEIMAGE_WGSL_GROUP2_BINDING_OUT_OF_RANGE); + } + } return true; } @@ -16153,6 +16826,7 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_shader(_sg_shader_t* shd, const // NOTE also need to create a mapping of sokol ub bind slots to array indices // for the dynamic offsets array in the setBindGroup call SOKOL_ASSERT(_SG_WGPU_MAX_UB_BINDGROUP_ENTRIES <= _SG_WGPU_MAX_IMG_SMP_SBUF_BINDGROUP_ENTRIES); + SOKOL_ASSERT(_SG_WGPU_MAX_SIMG_BINDGROUP_ENTRIES <= _SG_WGPU_MAX_IMG_SMP_SBUF_BINDGROUP_ENTRIES); WGPUBindGroupLayoutEntry bgl_entries[_SG_WGPU_MAX_IMG_SMP_SBUF_BINDGROUP_ENTRIES]; _sg_clear(bgl_entries, sizeof(bgl_entries)); WGPUBindGroupLayoutDescriptor bgl_desc; @@ -16253,6 +16927,38 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_shader(_sg_shader_t* shd, const _SG_ERROR(WGPU_SHADER_CREATE_BINDGROUP_LAYOUT_FAILED); return SG_RESOURCESTATE_FAILED; } + + // create optional bindgroup layout for storage images (separate bindgroup because + // those are not applied in sg_apply_bindings() but are defined as pass attachments) + _sg_clear(bgl_entries, sizeof(bgl_entries)); + _sg_clear(&bgl_desc, sizeof(bgl_desc)); + bgl_index = 0; + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (shd->cmn.storage_images[i].stage == SG_SHADERSTAGE_NONE) { + continue; + } + shd->wgpu.simg_grp2_bnd_n[i] = desc->storage_images[i].wgsl_group2_binding_n; + WGPUBindGroupLayoutEntry* bgl_entry = &bgl_entries[bgl_index]; + bgl_entry->binding = shd->wgpu.simg_grp2_bnd_n[i]; + bgl_entry->visibility = _sg_wgpu_shader_stage(shd->cmn.storage_images[i].stage); + if (shd->cmn.storage_images[i].writeonly) { + bgl_entry->storageTexture.access = WGPUStorageTextureAccess_WriteOnly; + } else { + bgl_entry->storageTexture.access = WGPUStorageTextureAccess_ReadWrite; + } + bgl_entry->storageTexture.format = _sg_wgpu_textureformat(desc->storage_images[i].access_format); + bgl_entry->texture.viewDimension = _sg_wgpu_texture_view_dimension(shd->cmn.storage_images[i].image_type); + bgl_index += 1; + } + if (bgl_index > 0) { + bgl_desc.entryCount = bgl_index; + bgl_desc.entries = bgl_entries; + shd->wgpu.bgl_simg = wgpuDeviceCreateBindGroupLayout(_sg.wgpu.dev, &bgl_desc); + if (shd->wgpu.bgl_simg == 0) { + _SG_ERROR(WGPU_SHADER_CREATE_BINDGROUP_LAYOUT_FAILED); + return SG_RESOURCESTATE_FAILED; + } + } return SG_RESOURCESTATE_VALID; } @@ -16273,6 +16979,10 @@ _SOKOL_PRIVATE void _sg_wgpu_discard_shader(_sg_shader_t* shd) { wgpuBindGroupLayoutRelease(shd->wgpu.bgl_img_smp_sbuf); shd->wgpu.bgl_img_smp_sbuf = 0; } + if (shd->wgpu.bgl_simg) { + wgpuBindGroupLayoutRelease(shd->wgpu.bgl_simg); + shd->wgpu.bgl_simg = 0; + } } _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_pipeline(_sg_pipeline_t* pip, _sg_shader_t* shd, const sg_pipeline_desc* desc) { @@ -16289,13 +16999,19 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_pipeline(_sg_pipeline_t* pip, _ // - @group(0) for uniform blocks // - @group(1) for all image, sampler and storagebuffer resources - WGPUBindGroupLayout wgpu_bgl[_SG_WGPU_NUM_BINDGROUPS]; + // - @group(2) optional: storage image attachments in compute passes + size_t num_bgls = 2; + WGPUBindGroupLayout wgpu_bgl[_SG_WGPU_MAX_BINDGROUPS]; _sg_clear(&wgpu_bgl, sizeof(wgpu_bgl)); wgpu_bgl[_SG_WGPU_UB_BINDGROUP_INDEX ] = shd->wgpu.bgl_ub; wgpu_bgl[_SG_WGPU_IMG_SMP_SBUF_BINDGROUP_INDEX] = shd->wgpu.bgl_img_smp_sbuf; + if (shd->wgpu.bgl_simg) { + wgpu_bgl[_SG_WGPU_SIMG_BINDGROUP_INDEX] = shd->wgpu.bgl_simg; + num_bgls += 1; + } WGPUPipelineLayoutDescriptor wgpu_pl_desc; _sg_clear(&wgpu_pl_desc, sizeof(wgpu_pl_desc)); - wgpu_pl_desc.bindGroupLayoutCount = _SG_WGPU_NUM_BINDGROUPS; + wgpu_pl_desc.bindGroupLayoutCount = num_bgls; wgpu_pl_desc.bindGroupLayouts = &wgpu_bgl[0]; const WGPUPipelineLayout wgpu_pip_layout = wgpuDeviceCreatePipelineLayout(_sg.wgpu.dev, &wgpu_pl_desc); if (0 == wgpu_pip_layout) { @@ -16437,9 +17153,8 @@ _SOKOL_PRIVATE void _sg_wgpu_discard_pipeline(_sg_pipeline_t* pip) { } } -_SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_attachments(_sg_attachments_t* atts, _sg_image_t** color_images, _sg_image_t** resolve_images, _sg_image_t* ds_img, const sg_attachments_desc* desc) { - SOKOL_ASSERT(atts && desc); - SOKOL_ASSERT(color_images && resolve_images); +_SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_attachments(_sg_attachments_t* atts, const _sg_attachments_ptrs_t* atts_ptrs, const sg_attachments_desc* desc) { + SOKOL_ASSERT(atts && atts_ptrs && desc); // copy image pointers and create renderable wgpu texture views for (int i = 0; i < atts->cmn.num_colors; i++) { @@ -16447,10 +17162,12 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_attachments(_sg_attachments_t* _SOKOL_UNUSED(color_desc); SOKOL_ASSERT(color_desc->image.id != SG_INVALID_ID); SOKOL_ASSERT(0 == atts->wgpu.colors[i].image); - SOKOL_ASSERT(color_images[i] && (color_images[i]->slot.id == color_desc->image.id)); - SOKOL_ASSERT(_sg_is_valid_rendertarget_color_format(color_images[i]->cmn.pixel_format)); - SOKOL_ASSERT(color_images[i]->wgpu.tex); - atts->wgpu.colors[i].image = color_images[i]; + SOKOL_ASSERT(atts_ptrs->color_images[i]); + _sg_image_t* clr_img = atts_ptrs->color_images[i]; + SOKOL_ASSERT(clr_img->slot.id == color_desc->image.id); + SOKOL_ASSERT(_sg_is_valid_attachment_color_format(clr_img->cmn.pixel_format)); + SOKOL_ASSERT(clr_img->wgpu.tex); + atts->wgpu.colors[i].image = clr_img; WGPUTextureViewDescriptor wgpu_color_view_desc; _sg_clear(&wgpu_color_view_desc, sizeof(wgpu_color_view_desc)); @@ -16458,7 +17175,7 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_attachments(_sg_attachments_t* wgpu_color_view_desc.mipLevelCount = 1; wgpu_color_view_desc.baseArrayLayer = (uint32_t) color_desc->slice; wgpu_color_view_desc.arrayLayerCount = 1; - atts->wgpu.colors[i].view = wgpuTextureCreateView(color_images[i]->wgpu.tex, &wgpu_color_view_desc); + atts->wgpu.colors[i].view = wgpuTextureCreateView(clr_img->wgpu.tex, &wgpu_color_view_desc); if (0 == atts->wgpu.colors[i].view) { _SG_ERROR(WGPU_ATTACHMENTS_CREATE_TEXTURE_VIEW_FAILED); return SG_RESOURCESTATE_FAILED; @@ -16467,10 +17184,12 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_attachments(_sg_attachments_t* const sg_attachment_desc* resolve_desc = &desc->resolves[i]; if (resolve_desc->image.id != SG_INVALID_ID) { SOKOL_ASSERT(0 == atts->wgpu.resolves[i].image); - SOKOL_ASSERT(resolve_images[i] && (resolve_images[i]->slot.id == resolve_desc->image.id)); - SOKOL_ASSERT(color_images[i] && (color_images[i]->cmn.pixel_format == resolve_images[i]->cmn.pixel_format)); - SOKOL_ASSERT(resolve_images[i]->wgpu.tex); - atts->wgpu.resolves[i].image = resolve_images[i]; + SOKOL_ASSERT(atts_ptrs->resolve_images[i]); + _sg_image_t* rsv_img = atts_ptrs->resolve_images[i]; + SOKOL_ASSERT(rsv_img->slot.id == resolve_desc->image.id); + SOKOL_ASSERT(clr_img->cmn.pixel_format == rsv_img->cmn.pixel_format); + SOKOL_ASSERT(rsv_img->wgpu.tex); + atts->wgpu.resolves[i].image = rsv_img; WGPUTextureViewDescriptor wgpu_resolve_view_desc; _sg_clear(&wgpu_resolve_view_desc, sizeof(wgpu_resolve_view_desc)); @@ -16478,7 +17197,7 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_attachments(_sg_attachments_t* wgpu_resolve_view_desc.mipLevelCount = 1; wgpu_resolve_view_desc.baseArrayLayer = (uint32_t) resolve_desc->slice; wgpu_resolve_view_desc.arrayLayerCount = 1; - atts->wgpu.resolves[i].view = wgpuTextureCreateView(resolve_images[i]->wgpu.tex, &wgpu_resolve_view_desc); + atts->wgpu.resolves[i].view = wgpuTextureCreateView(rsv_img->wgpu.tex, &wgpu_resolve_view_desc); if (0 == atts->wgpu.resolves[i].view) { _SG_ERROR(WGPU_ATTACHMENTS_CREATE_TEXTURE_VIEW_FAILED); return SG_RESOURCESTATE_FAILED; @@ -16488,8 +17207,10 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_attachments(_sg_attachments_t* SOKOL_ASSERT(0 == atts->wgpu.depth_stencil.image); const sg_attachment_desc* ds_desc = &desc->depth_stencil; if (ds_desc->image.id != SG_INVALID_ID) { - SOKOL_ASSERT(ds_img && (ds_img->slot.id == ds_desc->image.id)); - SOKOL_ASSERT(_sg_is_valid_rendertarget_depth_format(ds_img->cmn.pixel_format)); + SOKOL_ASSERT(atts_ptrs->ds_image); + _sg_image_t* ds_img =atts_ptrs->ds_image; + SOKOL_ASSERT(ds_img->slot.id == ds_desc->image.id); + SOKOL_ASSERT(_sg_is_valid_attachment_depth_format(ds_img->cmn.pixel_format)); SOKOL_ASSERT(ds_img->wgpu.tex); atts->wgpu.depth_stencil.image = ds_img; @@ -16505,6 +17226,34 @@ _SOKOL_PRIVATE sg_resource_state _sg_wgpu_create_attachments(_sg_attachments_t* return SG_RESOURCESTATE_FAILED; } } + for (int i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + const sg_attachment_desc* storage_desc = &desc->storages[i]; + if (storage_desc->image.id != SG_INVALID_ID) { + SOKOL_ASSERT(0 == atts->wgpu.storages[i].image); + SOKOL_ASSERT(atts_ptrs->storage_images[i]); + _sg_image_t* stg_img = atts_ptrs->storage_images[i]; + SOKOL_ASSERT(stg_img->slot.id == storage_desc->image.id); + SOKOL_ASSERT(_sg_is_valid_attachment_storage_format(stg_img->cmn.pixel_format)); + atts->wgpu.storages[i].image = stg_img; + + WGPUTextureViewDescriptor wgpu_storage_view_desc; + _sg_clear(&wgpu_storage_view_desc, sizeof(wgpu_storage_view_desc)); + wgpu_storage_view_desc.baseMipLevel = (uint32_t) storage_desc->mip_level; + wgpu_storage_view_desc.mipLevelCount = 1; + wgpu_storage_view_desc.baseArrayLayer = (uint32_t) storage_desc->slice; + wgpu_storage_view_desc.arrayLayerCount = 1; + if (_sg_is_depth_or_depth_stencil_format(stg_img->cmn.pixel_format)) { + wgpu_storage_view_desc.aspect = WGPUTextureAspect_DepthOnly; + } else { + wgpu_storage_view_desc.aspect = WGPUTextureAspect_All; + } + atts->wgpu.storages[i].view = wgpuTextureCreateView(stg_img->wgpu.tex, &wgpu_storage_view_desc); + if (0 == atts->wgpu.storages[i].view) { + _SG_ERROR(WGPU_ATTACHMENTS_CREATE_TEXTURE_VIEW_FAILED); + return SG_RESOURCESTATE_FAILED; + } + } + } return SG_RESOURCESTATE_VALID; } @@ -16524,6 +17273,12 @@ _SOKOL_PRIVATE void _sg_wgpu_discard_attachments(_sg_attachments_t* atts) { wgpuTextureViewRelease(atts->wgpu.depth_stencil.view); atts->wgpu.depth_stencil.view = 0; } + for (int i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (atts->wgpu.storages[i].view) { + wgpuTextureViewRelease(atts->wgpu.storages[i].view); + atts->wgpu.storages[i].view = 0; + } + } } _SOKOL_PRIVATE _sg_image_t* _sg_wgpu_attachments_color_image(const _sg_attachments_t* atts, int index) { @@ -16544,6 +17299,11 @@ _SOKOL_PRIVATE _sg_image_t* _sg_wgpu_attachments_ds_image(const _sg_attachments_ return atts->wgpu.depth_stencil.image; } +_SOKOL_PRIVATE _sg_image_t* _sg_wgpu_attachments_storage_image(const _sg_attachments_t* atts, int index) { + SOKOL_ASSERT(atts && (index >= 0) && (index < SG_MAX_STORAGE_ATTACHMENTS)); + return atts->wgpu.storages[index].image; +} + _SOKOL_PRIVATE void _sg_wgpu_init_color_att(WGPURenderPassColorAttachment* wgpu_att, const sg_color_attachment_action* action, WGPUTextureView color_view, WGPUTextureView resolve_view) { wgpu_att->depthSlice = WGPU_DEPTH_SLICE_UNDEFINED; wgpu_att->view = color_view; @@ -16582,6 +17342,7 @@ _SOKOL_PRIVATE void _sg_wgpu_begin_compute_pass(const sg_pass* pass) { // clear initial bindings wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_UB_BINDGROUP_INDEX, _sg.wgpu.empty_bind_group, 0, 0); wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_IMG_SMP_SBUF_BINDGROUP_INDEX, _sg.wgpu.empty_bind_group, 0, 0); + wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_SIMG_BINDGROUP_INDEX, _sg.wgpu.empty_bind_group, 0, 0); _sg_stats_add(wgpu.bindings.num_set_bindgroup, 1); } @@ -16745,6 +17506,47 @@ _SOKOL_PRIVATE void _sg_wgpu_apply_pipeline(_sg_pipeline_t* pip) { SOKOL_ASSERT(pip->wgpu.cpip); SOKOL_ASSERT(_sg.wgpu.cpass_enc); wgpuComputePassEncoderSetPipeline(_sg.wgpu.cpass_enc, pip->wgpu.cpip); + + // adhoc-create a storage attachment bindgroup without going through the bindgroups cache + // FIXME: the 'resource view update' will get rid of this special case because then storage images + // will be regular resource bindings + if (pip->shader->wgpu.bgl_simg) { + _sg_stats_add(wgpu.bindings.num_create_bindgroup, 1); + _sg_shader_t* shd = pip->shader; + SOKOL_ASSERT(shd); + WGPUBindGroupLayout bgl = shd->wgpu.bgl_simg; + WGPUBindGroupEntry bg_entries[_SG_WGPU_MAX_SIMG_BINDGROUP_ENTRIES]; + _sg_clear(&bg_entries, sizeof(bg_entries)); + size_t bgl_index = 0; + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (shd->cmn.storage_images[i].stage == SG_SHADERSTAGE_NONE) { + continue; + } + SOKOL_ASSERT(_sg.cur_pass.atts); + _sg_attachments_t* atts = _sg.cur_pass.atts; + SOKOL_ASSERT(atts->wgpu.storages[i].view); + WGPUBindGroupEntry* bg_entry = &bg_entries[bgl_index]; + bg_entry->binding = shd->wgpu.simg_grp2_bnd_n[i]; + bg_entry->textureView = atts->wgpu.storages[i].view; + bgl_index++; + } + SOKOL_ASSERT(bgl_index > 0); + WGPUBindGroupDescriptor bg_desc; + _sg_clear(&bg_desc, sizeof(bg_desc)); + bg_desc.layout = bgl; + bg_desc.entryCount = bgl_index; + bg_desc.entries = bg_entries; + WGPUBindGroup bg = wgpuDeviceCreateBindGroup(_sg.wgpu.dev, &bg_desc); + if (bg) { + wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_SIMG_BINDGROUP_INDEX, bg, 0, 0); + wgpuBindGroupRelease(bg); + } else { + _SG_ERROR(WGPU_CREATEBINDGROUP_FAILED); + } + } else { + // no storage attachment bindings, clear bindgroup slot + wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_SIMG_BINDGROUP_INDEX, _sg.wgpu.empty_bind_group, 0, 0); + } } else { SOKOL_ASSERT(!_sg.cur_pass.is_compute); SOKOL_ASSERT(pip->wgpu.rpip); @@ -16757,10 +17559,10 @@ _SOKOL_PRIVATE void _sg_wgpu_apply_pipeline(_sg_pipeline_t* pip) { // bind groups must be set because pipelines without uniform blocks or resource bindings // will still create 'empty' BindGroupLayouts _sg_wgpu_set_ub_bindgroup(pip->shader); - _sg_wgpu_set_img_smp_sbuf_bindgroup(0); // this will set the 'empty bind group' + _sg_wgpu_set_bindgroup(_SG_WGPU_IMG_SMP_SBUF_BINDGROUP_INDEX, 0); // this will set the 'empty bind group' } -_SOKOL_PRIVATE bool _sg_wgpu_apply_bindings(_sg_bindings_t* bnd) { +_SOKOL_PRIVATE bool _sg_wgpu_apply_bindings(_sg_bindings_ptrs_t* bnd) { SOKOL_ASSERT(bnd); SOKOL_ASSERT(bnd->pip->shader && (bnd->pip->cmn.shader_id.id == bnd->pip->shader->slot.id)); bool retval = true; @@ -16768,7 +17570,7 @@ _SOKOL_PRIVATE bool _sg_wgpu_apply_bindings(_sg_bindings_t* bnd) { retval &= _sg_wgpu_apply_index_buffer(bnd); retval &= _sg_wgpu_apply_vertex_buffers(bnd); } - retval &= _sg_wgpu_apply_bindgroup(bnd); + retval &= _sg_wgpu_apply_bindings_bindgroup(bnd); return retval; } @@ -17045,17 +17847,17 @@ static inline void _sg_discard_pipeline(_sg_pipeline_t* pip) { #endif } -static inline sg_resource_state _sg_create_attachments(_sg_attachments_t* atts, _sg_image_t** color_images, _sg_image_t** resolve_images, _sg_image_t* ds_image, const sg_attachments_desc* desc) { +static inline sg_resource_state _sg_create_attachments(_sg_attachments_t* atts, _sg_attachments_ptrs_t* atts_ptrs, const sg_attachments_desc* desc) { #if defined(_SOKOL_ANY_GL) - return _sg_gl_create_attachments(atts, color_images, resolve_images, ds_image, desc); + return _sg_gl_create_attachments(atts, atts_ptrs, desc); #elif defined(SOKOL_METAL) - return _sg_mtl_create_attachments(atts, color_images, resolve_images, ds_image, desc); + return _sg_mtl_create_attachments(atts, atts_ptrs, desc); #elif defined(SOKOL_D3D11) - return _sg_d3d11_create_attachments(atts, color_images, resolve_images, ds_image, desc); + return _sg_d3d11_create_attachments(atts, atts_ptrs, desc); #elif defined(SOKOL_WGPU) - return _sg_wgpu_create_attachments(atts, color_images, resolve_images, ds_image, desc); + return _sg_wgpu_create_attachments(atts, atts_ptrs, desc); #elif defined(SOKOL_DUMMY_BACKEND) - return _sg_dummy_create_attachments(atts, color_images, resolve_images, ds_image, desc); + return _sg_dummy_create_attachments(atts, atts_ptrs, desc); #else #error("INVALID BACKEND"); #endif @@ -17125,6 +17927,22 @@ static inline _sg_image_t* _sg_attachments_ds_image(const _sg_attachments_t* att #endif } +static inline _sg_image_t* _sg_attachments_storage_image(const _sg_attachments_t* atts, int index) { + #if defined(_SOKOL_ANY_GL) + return _sg_gl_attachments_storage_image(atts, index); + #elif defined(SOKOL_METAL) + return _sg_mtl_attachments_storage_image(atts, index); + #elif defined(SOKOL_D3D11) + return _sg_d3d11_attachments_storage_image(atts, index); + #elif defined(SOKOL_WGPU) + return _sg_wgpu_attachments_storage_image(atts, index); + #elif defined(SOKOL_DUMMY_BACKEND) + return _sg_dummy_attachments_storage_image(atts, index); + #else + #error("INVALID BACKEND"); + #endif +} + static inline void _sg_begin_pass(const sg_pass* pass) { #if defined(_SOKOL_ANY_GL) _sg_gl_begin_pass(pass); @@ -17205,7 +18023,7 @@ static inline void _sg_apply_pipeline(_sg_pipeline_t* pip) { #endif } -static inline bool _sg_apply_bindings(_sg_bindings_t* bnd) { +static inline bool _sg_apply_bindings(_sg_bindings_ptrs_t* bnd) { #if defined(_SOKOL_ANY_GL) return _sg_gl_apply_bindings(bnd); #elif defined(SOKOL_METAL) @@ -17764,6 +18582,10 @@ _SOKOL_PRIVATE bool _sg_validate_end(void) { } #endif +_SOKOL_PRIVATE bool _sg_one(bool b0, bool b1, bool b2) { + return (b0 && !b1 && !b2) || (!b0 && b1 && !b2) || (!b0 && !b1 && b2); +} + _SOKOL_PRIVATE bool _sg_validate_buffer_desc(const sg_buffer_desc* desc) { #if !defined(SOKOL_DEBUG) _SOKOL_UNUSED(desc); @@ -17777,21 +18599,26 @@ _SOKOL_PRIVATE bool _sg_validate_buffer_desc(const sg_buffer_desc* desc) { _SG_VALIDATE(desc->_start_canary == 0, VALIDATE_BUFFERDESC_CANARY); _SG_VALIDATE(desc->_end_canary == 0, VALIDATE_BUFFERDESC_CANARY); _SG_VALIDATE(desc->size > 0, VALIDATE_BUFFERDESC_EXPECT_NONZERO_SIZE); + _SG_VALIDATE(_sg_one(desc->usage.immutable, desc->usage.dynamic_update, desc->usage.stream_update), VALIDATE_BUFFERDESC_IMMUTABLE_DYNAMIC_STREAM); + if (_sg.features.separate_buffer_types) { + _SG_VALIDATE(_sg_one(desc->usage.vertex_buffer, desc->usage.index_buffer, desc->usage.storage_buffer), VALIDATE_BUFFERDESC_SEPARATE_BUFFER_TYPES); + } bool injected = (0 != desc->gl_buffers[0]) || (0 != desc->mtl_buffers[0]) || (0 != desc->d3d11_buffer) || (0 != desc->wgpu_buffer); - if (!injected && (desc->usage == SG_USAGE_IMMUTABLE)) { + if (!injected && desc->usage.immutable) { if (desc->data.ptr) { _SG_VALIDATE(desc->size == desc->data.size, VALIDATE_BUFFERDESC_EXPECT_MATCHING_DATA_SIZE); } else { + _SG_VALIDATE(desc->usage.storage_buffer, VALIDATE_BUFFERDESC_EXPECT_DATA); _SG_VALIDATE(desc->data.size == 0, VALIDATE_BUFFERDESC_EXPECT_ZERO_DATA_SIZE); } } else { _SG_VALIDATE(0 == desc->data.ptr, VALIDATE_BUFFERDESC_EXPECT_NO_DATA); _SG_VALIDATE(desc->data.size == 0, VALIDATE_BUFFERDESC_EXPECT_ZERO_DATA_SIZE); } - if (desc->type == SG_BUFFERTYPE_STORAGEBUFFER) { + if (desc->usage.storage_buffer) { _SG_VALIDATE(_sg.features.compute, VALIDATE_BUFFERDESC_STORAGEBUFFER_SUPPORTED); _SG_VALIDATE(_sg_multiple_u64(desc->size, 4), VALIDATE_BUFFERDESC_STORAGEBUFFER_SIZE_MULTIPLE_4); } @@ -17836,10 +18663,14 @@ _SOKOL_PRIVATE bool _sg_validate_image_desc(const sg_image_desc* desc) { _sg_validate_begin(); _SG_VALIDATE(desc->_start_canary == 0, VALIDATE_IMAGEDESC_CANARY); _SG_VALIDATE(desc->_end_canary == 0, VALIDATE_IMAGEDESC_CANARY); + _SG_VALIDATE(_sg_one(desc->usage.immutable, desc->usage.dynamic_update, desc->usage.stream_update), VALIDATE_IMAGEDESC_IMMUTABLE_DYNAMIC_STREAM); + if (desc->usage.render_attachment || desc->usage.storage_attachment) { + _SG_VALIDATE(_sg_one(desc->usage.render_attachment, desc->usage.storage_attachment, false), VALIDATE_IMAGEDESC_RENDER_VS_STORAGE_ATTACHMENT); + } _SG_VALIDATE(desc->width > 0, VALIDATE_IMAGEDESC_WIDTH); _SG_VALIDATE(desc->height > 0, VALIDATE_IMAGEDESC_HEIGHT); const sg_pixel_format fmt = desc->pixel_format; - const sg_usage usage = desc->usage; + const sg_image_usage* usage = &desc->usage; const bool injected = (0 != desc->gl_textures[0]) || (0 != desc->mtl_textures[0]) || (0 != desc->d3d11_texture) || @@ -17847,27 +18678,33 @@ _SOKOL_PRIVATE bool _sg_validate_image_desc(const sg_image_desc* desc) { if (_sg_is_depth_or_depth_stencil_format(fmt)) { _SG_VALIDATE(desc->type != SG_IMAGETYPE_3D, VALIDATE_IMAGEDESC_DEPTH_3D_IMAGE); } - if (desc->render_target) { + if (usage->render_attachment || usage->storage_attachment) { SOKOL_ASSERT(((int)fmt >= 0) && ((int)fmt < _SG_PIXELFORMAT_NUM)); - _SG_VALIDATE(_sg.formats[fmt].render, VALIDATE_IMAGEDESC_RT_PIXELFORMAT); - _SG_VALIDATE(usage == SG_USAGE_IMMUTABLE, VALIDATE_IMAGEDESC_RT_IMMUTABLE); - _SG_VALIDATE(desc->data.subimage[0][0].ptr==0, VALIDATE_IMAGEDESC_RT_NO_DATA); - if (desc->sample_count > 1) { - _SG_VALIDATE(_sg.formats[fmt].msaa, VALIDATE_IMAGEDESC_NO_MSAA_RT_SUPPORT); - _SG_VALIDATE(desc->num_mipmaps == 1, VALIDATE_IMAGEDESC_MSAA_NUM_MIPMAPS); - _SG_VALIDATE(desc->type != SG_IMAGETYPE_3D, VALIDATE_IMAGEDESC_MSAA_3D_IMAGE); - _SG_VALIDATE(desc->type != SG_IMAGETYPE_CUBE, VALIDATE_IMAGEDESC_MSAA_CUBE_IMAGE); + _SG_VALIDATE(usage->immutable, VALIDATE_IMAGEDESC_ATTACHMENT_EXPECT_IMMUTABLE); + _SG_VALIDATE(desc->data.subimage[0][0].ptr==0, VALIDATE_IMAGEDESC_ATTACHMENT_EXPECT_NO_DATA); + if (usage->render_attachment) { + _SG_VALIDATE(_sg.formats[fmt].render, VALIDATE_IMAGEDESC_RENDERATTACHMENT_PIXELFORMAT); + if (desc->sample_count > 1) { + _SG_VALIDATE(_sg.formats[fmt].msaa, VALIDATE_IMAGEDESC_RENDERATTACHMENT_NO_MSAA_SUPPORT); + _SG_VALIDATE(desc->num_mipmaps == 1, VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_NUM_MIPMAPS); + _SG_VALIDATE(desc->type != SG_IMAGETYPE_ARRAY, VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_ARRAY_IMAGE); + _SG_VALIDATE(desc->type != SG_IMAGETYPE_3D, VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_3D_IMAGE); + _SG_VALIDATE(desc->type != SG_IMAGETYPE_CUBE, VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_CUBE_IMAGE); + } + } else if (usage->storage_attachment) { + _SG_VALIDATE(_sg_is_valid_attachment_storage_format(fmt), VALIDATE_IMAGEDESC_STORAGEATTACHMENT_PIXELFORMAT); + // D3D11 doesn't allow multisampled UAVs (see: https://github.com/gpuweb/gpuweb/issues/513) + _SG_VALIDATE(desc->sample_count == 1, VALIDATE_IMAGEDESC_STORAGEATTACHMENT_EXPECT_NO_MSAA); } } else { - _SG_VALIDATE(desc->sample_count == 1, VALIDATE_IMAGEDESC_MSAA_BUT_NO_RT); - const bool valid_nonrt_fmt = !_sg_is_valid_rendertarget_depth_format(fmt); + _SG_VALIDATE(desc->sample_count == 1, VALIDATE_IMAGEDESC_MSAA_BUT_NO_ATTACHMENT); + const bool valid_nonrt_fmt = !_sg_is_valid_attachment_depth_format(fmt); _SG_VALIDATE(valid_nonrt_fmt, VALIDATE_IMAGEDESC_NONRT_PIXELFORMAT); const bool is_compressed = _sg_is_compressed_pixel_format(desc->pixel_format); - const bool is_immutable = (usage == SG_USAGE_IMMUTABLE); if (is_compressed) { - _SG_VALIDATE(is_immutable, VALIDATE_IMAGEDESC_COMPRESSED_IMMUTABLE); + _SG_VALIDATE(usage->immutable, VALIDATE_IMAGEDESC_COMPRESSED_IMMUTABLE); } - if (!injected && is_immutable) { + if (!injected && usage->immutable) { // image desc must have valid data _sg_validate_image_data(&desc->data, desc->pixel_format, @@ -17885,7 +18722,7 @@ _SOKOL_PRIVATE bool _sg_validate_image_desc(const sg_image_desc* desc) { if (injected) { _SG_VALIDATE(no_data && no_size, VALIDATE_IMAGEDESC_INJECTED_NO_DATA); } - if (!is_immutable) { + if (!usage->immutable) { _SG_VALIDATE(no_data && no_size, VALIDATE_IMAGEDESC_DYNAMIC_NO_DATA); } } @@ -18062,10 +18899,12 @@ _SOKOL_PRIVATE bool _sg_validate_shader_desc(const sg_shader_desc* desc) { _sg_u128_t hlsl_uav_bits = _sg_u128(); _sg_u128_t hlsl_smp_bits = _sg_u128(); #elif defined(_SOKOL_ANY_GL) - _sg_u128_t glsl_bnd_bits = _sg_u128(); + _sg_u128_t glsl_sbuf_bnd_bits = _sg_u128(); + _sg_u128_t glsl_simg_bnd_bits = _sg_u128(); #elif defined(SOKOL_WGPU) _sg_u128_t wgsl_group0_bits = _sg_u128(); _sg_u128_t wgsl_group1_bits = _sg_u128(); + _sg_u128_t wgsl_group2_bits = _sg_u128(); #endif for (size_t ub_idx = 0; ub_idx < SG_MAX_UNIFORMBLOCK_BINDSLOTS; ub_idx++) { const sg_shader_uniform_block* ub_desc = &desc->uniform_blocks[ub_idx]; @@ -18141,8 +18980,8 @@ _SOKOL_PRIVATE bool _sg_validate_shader_desc(const sg_shader_desc* desc) { } #elif defined(_SOKOL_ANY_GL) _SG_VALIDATE(sbuf_desc->glsl_binding_n < _SG_GL_MAX_SBUF_BINDINGS, VALIDATE_SHADERDESC_STORAGEBUFFER_GLSL_BINDING_OUT_OF_RANGE); - _SG_VALIDATE(_sg_validate_slot_bits(glsl_bnd_bits, SG_SHADERSTAGE_NONE, sbuf_desc->glsl_binding_n), VALIDATE_SHADERDESC_STORAGEBUFFER_GLSL_BINDING_COLLISION); - glsl_bnd_bits = _sg_validate_set_slot_bit(glsl_bnd_bits, SG_SHADERSTAGE_NONE, sbuf_desc->glsl_binding_n); + _SG_VALIDATE(_sg_validate_slot_bits(glsl_sbuf_bnd_bits, SG_SHADERSTAGE_NONE, sbuf_desc->glsl_binding_n), VALIDATE_SHADERDESC_STORAGEBUFFER_GLSL_BINDING_COLLISION); + glsl_sbuf_bnd_bits = _sg_validate_set_slot_bit(glsl_sbuf_bnd_bits, SG_SHADERSTAGE_NONE, sbuf_desc->glsl_binding_n); #elif defined(SOKOL_WGPU) _SG_VALIDATE(sbuf_desc->wgsl_group1_binding_n < _SG_WGPU_MAX_IMG_SMP_SBUF_BIND_SLOTS, VALIDATE_SHADERDESC_STORAGEBUFFER_WGSL_GROUP1_BINDING_OUT_OF_RANGE); _SG_VALIDATE(_sg_validate_slot_bits(wgsl_group1_bits, SG_SHADERSTAGE_NONE, sbuf_desc->wgsl_group1_binding_n), VALIDATE_SHADERDESC_STORAGEBUFFER_WGSL_GROUP1_BINDING_COLLISION); @@ -18150,6 +18989,31 @@ _SOKOL_PRIVATE bool _sg_validate_shader_desc(const sg_shader_desc* desc) { #endif } + for (size_t simg_idx = 0; simg_idx < SG_MAX_STORAGE_ATTACHMENTS; simg_idx++) { + const sg_shader_storage_image* simg_desc = &desc->storage_images[simg_idx]; + if (simg_desc->stage == SG_SHADERSTAGE_NONE) { + continue; + } + _SG_VALIDATE(simg_desc->stage == SG_SHADERSTAGE_COMPUTE, VALIDATE_SHADERDESC_STORAGEIMAGE_EXPECT_COMPUTE_STAGE); + #if defined(SOKOL_METAL) + _SG_VALIDATE(simg_desc->msl_texture_n < _SG_MTL_MAX_STAGE_TEXTURE_BINDINGS, VALIDATE_SHADERDESC_STORAGEIMAGE_METAL_TEXTURE_SLOT_OUT_OF_RANGE); + _SG_VALIDATE(_sg_validate_slot_bits(msl_tex_bits, simg_desc->stage, simg_desc->msl_texture_n), VALIDATE_SHADERDESC_STORAGEIMAGE_METAL_TEXTURE_SLOT_COLLISION); + msl_tex_bits = _sg_validate_set_slot_bit(msl_tex_bits, simg_desc->stage, simg_desc->msl_texture_n); + #elif defined(SOKOL_D3D11) + _SG_VALIDATE(simg_desc->hlsl_register_u_n < _SG_D3D11_MAX_STAGE_UAV_BINDINGS, VALIDATE_SHADERDESC_STORAGEIMAGE_HLSL_REGISTER_U_OUT_OF_RANGE); + _SG_VALIDATE(_sg_validate_slot_bits(hlsl_uav_bits, simg_desc->stage, simg_desc->hlsl_register_u_n), VALIDATE_SHADERDESC_STORAGEIMAGE_HLSL_REGISTER_U_COLLISION); + hlsl_uav_bits = _sg_validate_set_slot_bit(hlsl_uav_bits, simg_desc->stage, simg_desc->hlsl_register_u_n); + #elif defined(_SOKOL_ANY_GL) + _SG_VALIDATE(simg_desc->glsl_binding_n < _SG_GL_MAX_SIMG_BINDINGS, VALIDATE_SHADERDESC_STORAGEIMAGE_GLSL_BINDING_OUT_OF_RANGE); + _SG_VALIDATE(_sg_validate_slot_bits(glsl_simg_bnd_bits, SG_SHADERSTAGE_NONE, simg_desc->glsl_binding_n), VALIDATE_SHADERDESC_STORAGEIMAGE_GLSL_BINDING_COLLISION); + glsl_simg_bnd_bits = _sg_validate_set_slot_bit(glsl_simg_bnd_bits, SG_SHADERSTAGE_NONE, simg_desc->glsl_binding_n); + #elif defined(SOKOL_WGPU) + _SG_VALIDATE(simg_desc->wgsl_group2_binding_n < _SG_WGPU_MAX_SIMG_BIND_SLOTS, VALIDATE_SHADERDESC_STORAGEIMAGE_WGSL_GROUP2_BINDING_OUT_OF_RANGE); + _SG_VALIDATE(_sg_validate_slot_bits(wgsl_group2_bits, SG_SHADERSTAGE_NONE, simg_desc->wgsl_group2_binding_n), VALIDATE_SHADERDESC_STORAGEIMAGE_WGSL_GROUP2_BINDING_COLLISION); + wgsl_group2_bits = _sg_validate_set_slot_bit(wgsl_group2_bits, SG_SHADERSTAGE_NONE, simg_desc->wgsl_group2_binding_n); + #endif + } + uint32_t img_slot_mask = 0; for (size_t img_idx = 0; img_idx < SG_MAX_IMAGE_BINDSLOTS; img_idx++) { const sg_shader_image* img_desc = &desc->images[img_idx]; @@ -18158,7 +19022,7 @@ _SOKOL_PRIVATE bool _sg_validate_shader_desc(const sg_shader_desc* desc) { } img_slot_mask |= (1 << img_idx); #if defined(SOKOL_METAL) - _SG_VALIDATE(img_desc->msl_texture_n < _SG_MTL_MAX_STAGE_IMAGE_BINDINGS, VALIDATE_SHADERDESC_IMAGE_METAL_TEXTURE_SLOT_OUT_OF_RANGE); + _SG_VALIDATE(img_desc->msl_texture_n < _SG_MTL_MAX_STAGE_TEXTURE_BINDINGS, VALIDATE_SHADERDESC_IMAGE_METAL_TEXTURE_SLOT_OUT_OF_RANGE); _SG_VALIDATE(_sg_validate_slot_bits(msl_tex_bits, img_desc->stage, img_desc->msl_texture_n), VALIDATE_SHADERDESC_IMAGE_METAL_TEXTURE_SLOT_COLLISION); msl_tex_bits = _sg_validate_set_slot_bit(msl_tex_bits, img_desc->stage, img_desc->msl_texture_n); #elif defined(SOKOL_D3D11) @@ -18320,92 +19184,130 @@ _SOKOL_PRIVATE bool _sg_validate_attachments_desc(const sg_attachments_desc* des _sg_validate_begin(); _SG_VALIDATE(desc->_start_canary == 0, VALIDATE_ATTACHMENTSDESC_CANARY); _SG_VALIDATE(desc->_end_canary == 0, VALIDATE_ATTACHMENTSDESC_CANARY); - bool atts_cont = true; - int color_width = -1, color_height = -1, color_sample_count = -1; - bool has_color_atts = false; - for (int att_index = 0; att_index < SG_MAX_COLOR_ATTACHMENTS; att_index++) { - const sg_attachment_desc* att = &desc->colors[att_index]; - if (att->image.id == SG_INVALID_ID) { - atts_cont = false; - continue; - } - _SG_VALIDATE(atts_cont, VALIDATE_ATTACHMENTSDESC_NO_CONT_COLOR_ATTS); - has_color_atts = true; - const _sg_image_t* img = _sg_lookup_image(&_sg.pools, att->image.id); - _SG_VALIDATE(img, VALIDATE_ATTACHMENTSDESC_IMAGE); - if (0 != img) { - _SG_VALIDATE(img->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_ATTACHMENTSDESC_IMAGE); - _SG_VALIDATE(img->cmn.render_target, VALIDATE_ATTACHMENTSDESC_IMAGE_NO_RT); - _SG_VALIDATE(att->mip_level < img->cmn.num_mipmaps, VALIDATE_ATTACHMENTSDESC_MIPLEVEL); - if (img->cmn.type == SG_IMAGETYPE_CUBE) { - _SG_VALIDATE(att->slice < 6, VALIDATE_ATTACHMENTSDESC_FACE); - } else if (img->cmn.type == SG_IMAGETYPE_ARRAY) { - _SG_VALIDATE(att->slice < img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_LAYER); - } else if (img->cmn.type == SG_IMAGETYPE_3D) { - _SG_VALIDATE(att->slice < img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_SLICE); - } - if (att_index == 0) { - color_width = _sg_miplevel_dim(img->cmn.width, att->mip_level); - color_height = _sg_miplevel_dim(img->cmn.height, att->mip_level); - color_sample_count = img->cmn.sample_count; - } else { - _SG_VALIDATE(color_width == _sg_miplevel_dim(img->cmn.width, att->mip_level), VALIDATE_ATTACHMENTSDESC_IMAGE_SIZES); - _SG_VALIDATE(color_height == _sg_miplevel_dim(img->cmn.height, att->mip_level), VALIDATE_ATTACHMENTSDESC_IMAGE_SIZES); - _SG_VALIDATE(color_sample_count == img->cmn.sample_count, VALIDATE_ATTACHMENTSDESC_IMAGE_SAMPLE_COUNTS); - } - _SG_VALIDATE(_sg_is_valid_rendertarget_color_format(img->cmn.pixel_format), VALIDATE_ATTACHMENTSDESC_COLOR_INV_PIXELFORMAT); - // check resolve attachment - const sg_attachment_desc* res_att = &desc->resolves[att_index]; - if (res_att->image.id != SG_INVALID_ID) { - // associated color attachment must be MSAA - _SG_VALIDATE(img->cmn.sample_count > 1, VALIDATE_ATTACHMENTSDESC_RESOLVE_COLOR_IMAGE_MSAA); - const _sg_image_t* res_img = _sg_lookup_image(&_sg.pools, res_att->image.id); - _SG_VALIDATE(res_img, VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE); - if (res_img != 0) { - _SG_VALIDATE(res_img->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE); - _SG_VALIDATE(res_img->cmn.render_target, VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_NO_RT); - _SG_VALIDATE(res_img->cmn.sample_count == 1, VALIDATE_ATTACHMENTSDESC_RESOLVE_SAMPLE_COUNT); - _SG_VALIDATE(res_att->mip_level < res_img->cmn.num_mipmaps, VALIDATE_ATTACHMENTSDESC_RESOLVE_MIPLEVEL); - if (res_img->cmn.type == SG_IMAGETYPE_CUBE) { - _SG_VALIDATE(res_att->slice < 6, VALIDATE_ATTACHMENTSDESC_RESOLVE_FACE); - } else if (res_img->cmn.type == SG_IMAGETYPE_ARRAY) { - _SG_VALIDATE(res_att->slice < res_img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_RESOLVE_LAYER); - } else if (res_img->cmn.type == SG_IMAGETYPE_3D) { - _SG_VALIDATE(res_att->slice < res_img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_RESOLVE_SLICE); + // check color attachments + bool has_color_atts = false; + bool has_depth_stencil_att = false; + { + bool atts_cont = true; + int color_width = -1, color_height = -1, color_sample_count = -1; + for (int att_index = 0; att_index < SG_MAX_COLOR_ATTACHMENTS; att_index++) { + const sg_attachment_desc* att = &desc->colors[att_index]; + if (att->image.id == SG_INVALID_ID) { + atts_cont = false; + continue; + } + has_color_atts = true; + _SG_VALIDATE(atts_cont, VALIDATE_ATTACHMENTSDESC_NO_CONT_COLOR_ATTS); + const _sg_image_t* img = _sg_lookup_image(&_sg.pools, att->image.id); + _SG_VALIDATE(img, VALIDATE_ATTACHMENTSDESC_COLOR_IMAGE); + if (0 != img) { + _SG_VALIDATE(img->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_ATTACHMENTSDESC_COLOR_IMAGE); + _SG_VALIDATE(img->cmn.usage.render_attachment, VALIDATE_ATTACHMENTSDESC_COLOR_IMAGE_NO_RENDERATTACHMENT); + _SG_VALIDATE(att->mip_level < img->cmn.num_mipmaps, VALIDATE_ATTACHMENTSDESC_COLOR_MIPLEVEL); + if (img->cmn.type == SG_IMAGETYPE_CUBE) { + _SG_VALIDATE(att->slice < 6, VALIDATE_ATTACHMENTSDESC_COLOR_FACE); + } else if (img->cmn.type == SG_IMAGETYPE_ARRAY) { + _SG_VALIDATE(att->slice < img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_COLOR_LAYER); + } else if (img->cmn.type == SG_IMAGETYPE_3D) { + _SG_VALIDATE(att->slice < img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_COLOR_SLICE); + } + if (att_index == 0) { + color_width = _sg_miplevel_dim(img->cmn.width, att->mip_level); + color_height = _sg_miplevel_dim(img->cmn.height, att->mip_level); + color_sample_count = img->cmn.sample_count; + } else { + _SG_VALIDATE(color_width == _sg_miplevel_dim(img->cmn.width, att->mip_level), VALIDATE_ATTACHMENTSDESC_IMAGE_SIZES); + _SG_VALIDATE(color_height == _sg_miplevel_dim(img->cmn.height, att->mip_level), VALIDATE_ATTACHMENTSDESC_IMAGE_SIZES); + _SG_VALIDATE(color_sample_count == img->cmn.sample_count, VALIDATE_ATTACHMENTSDESC_IMAGE_SAMPLE_COUNTS); + } + _SG_VALIDATE(_sg_is_valid_attachment_color_format(img->cmn.pixel_format), VALIDATE_ATTACHMENTSDESC_COLOR_INV_PIXELFORMAT); + + // check resolve attachment + const sg_attachment_desc* res_att = &desc->resolves[att_index]; + if (res_att->image.id != SG_INVALID_ID) { + // associated color attachment must be MSAA + _SG_VALIDATE(img->cmn.sample_count > 1, VALIDATE_ATTACHMENTSDESC_RESOLVE_COLOR_IMAGE_MSAA); + const _sg_image_t* res_img = _sg_lookup_image(&_sg.pools, res_att->image.id); + _SG_VALIDATE(res_img, VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE); + if (res_img != 0) { + _SG_VALIDATE(res_img->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE); + _SG_VALIDATE(res_img->cmn.usage.render_attachment, VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_NO_RT); + _SG_VALIDATE(res_img->cmn.sample_count == 1, VALIDATE_ATTACHMENTSDESC_RESOLVE_SAMPLE_COUNT); + _SG_VALIDATE(res_att->mip_level < res_img->cmn.num_mipmaps, VALIDATE_ATTACHMENTSDESC_RESOLVE_MIPLEVEL); + if (res_img->cmn.type == SG_IMAGETYPE_CUBE) { + _SG_VALIDATE(res_att->slice < SG_CUBEFACE_NUM, VALIDATE_ATTACHMENTSDESC_RESOLVE_FACE); + } else if (res_img->cmn.type == SG_IMAGETYPE_ARRAY) { + _SG_VALIDATE(res_att->slice < res_img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_RESOLVE_LAYER); + } else if (res_img->cmn.type == SG_IMAGETYPE_3D) { + _SG_VALIDATE(res_att->slice < res_img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_RESOLVE_SLICE); + } + _SG_VALIDATE(img->cmn.pixel_format == res_img->cmn.pixel_format, VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_FORMAT); + _SG_VALIDATE(color_width == _sg_miplevel_dim(res_img->cmn.width, res_att->mip_level), VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_SIZES); + _SG_VALIDATE(color_height == _sg_miplevel_dim(res_img->cmn.height, res_att->mip_level), VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_SIZES); } - _SG_VALIDATE(img->cmn.pixel_format == res_img->cmn.pixel_format, VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_FORMAT); - _SG_VALIDATE(color_width == _sg_miplevel_dim(res_img->cmn.width, res_att->mip_level), VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_SIZES); - _SG_VALIDATE(color_height == _sg_miplevel_dim(res_img->cmn.height, res_att->mip_level), VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_SIZES); } } } - } - bool has_depth_stencil_att = false; - if (desc->depth_stencil.image.id != SG_INVALID_ID) { - const sg_attachment_desc* att = &desc->depth_stencil; - const _sg_image_t* img = _sg_lookup_image(&_sg.pools, att->image.id); - _SG_VALIDATE(img, VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE); - has_depth_stencil_att = true; - if (img) { - _SG_VALIDATE(img->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE); - _SG_VALIDATE(att->mip_level < img->cmn.num_mipmaps, VALIDATE_ATTACHMENTSDESC_DEPTH_MIPLEVEL); - if (img->cmn.type == SG_IMAGETYPE_CUBE) { - _SG_VALIDATE(att->slice < 6, VALIDATE_ATTACHMENTSDESC_DEPTH_FACE); - } else if (img->cmn.type == SG_IMAGETYPE_ARRAY) { - _SG_VALIDATE(att->slice < img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_DEPTH_LAYER); - } else if (img->cmn.type == SG_IMAGETYPE_3D) { - // NOTE: this can't actually happen because of VALIDATE_IMAGEDESC_DEPTH_3D_IMAGE - _SG_VALIDATE(att->slice < img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_DEPTH_SLICE); + // check depth stencil attachments + if (desc->depth_stencil.image.id != SG_INVALID_ID) { + has_depth_stencil_att = true; + const sg_attachment_desc* att = &desc->depth_stencil; + const _sg_image_t* img = _sg_lookup_image(&_sg.pools, att->image.id); + _SG_VALIDATE(img, VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE); + if (img) { + _SG_VALIDATE(img->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE); + _SG_VALIDATE(att->mip_level < img->cmn.num_mipmaps, VALIDATE_ATTACHMENTSDESC_DEPTH_MIPLEVEL); + if (img->cmn.type == SG_IMAGETYPE_CUBE) { + _SG_VALIDATE(att->slice < 6, VALIDATE_ATTACHMENTSDESC_DEPTH_FACE); + } else if (img->cmn.type == SG_IMAGETYPE_ARRAY) { + _SG_VALIDATE(att->slice < img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_DEPTH_LAYER); + } else if (img->cmn.type == SG_IMAGETYPE_3D) { + // NOTE: this can't actually happen because of VALIDATE_IMAGEDESC_DEPTH_3D_IMAGE + _SG_VALIDATE(att->slice < img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_DEPTH_SLICE); + } + _SG_VALIDATE(img->cmn.usage.render_attachment, VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_NO_RENDERATTACHMENT); + _SG_VALIDATE((color_width == -1) || (color_width == _sg_miplevel_dim(img->cmn.width, att->mip_level)), VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_SIZES); + _SG_VALIDATE((color_height == -1) || (color_height == _sg_miplevel_dim(img->cmn.height, att->mip_level)), VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_SIZES); + _SG_VALIDATE((color_sample_count == -1) || (color_sample_count == img->cmn.sample_count), VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_SAMPLE_COUNT); + _SG_VALIDATE(_sg_is_valid_attachment_depth_format(img->cmn.pixel_format), VALIDATE_ATTACHMENTSDESC_DEPTH_INV_PIXELFORMAT); } - _SG_VALIDATE(img->cmn.render_target, VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_NO_RT); - _SG_VALIDATE((color_width == -1) || (color_width == _sg_miplevel_dim(img->cmn.width, att->mip_level)), VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_SIZES); - _SG_VALIDATE((color_height == -1) || (color_height == _sg_miplevel_dim(img->cmn.height, att->mip_level)), VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_SIZES); - _SG_VALIDATE((color_sample_count == -1) || (color_sample_count == img->cmn.sample_count), VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_SAMPLE_COUNT); - _SG_VALIDATE(_sg_is_valid_rendertarget_depth_format(img->cmn.pixel_format), VALIDATE_ATTACHMENTSDESC_DEPTH_INV_PIXELFORMAT); } } - _SG_VALIDATE(has_color_atts || has_depth_stencil_att, VALIDATE_ATTACHMENTSDESC_NO_ATTACHMENTS); + + // check storage attachments (note: storage attachments don't need to continuous) + bool has_storage_atts = false; + { + for (int att_index = 0; att_index < SG_MAX_STORAGE_ATTACHMENTS; att_index++) { + const sg_attachment_desc* att = &desc->storages[att_index]; + if (att->image.id == SG_INVALID_ID) { + continue; + } + has_storage_atts = true; + const _sg_image_t* img = _sg_lookup_image(&_sg.pools, att->image.id); + _SG_VALIDATE(img, VALIDATE_ATTACHMENTSDESC_STORAGE_IMAGE); + if (0 != img) { + _SG_VALIDATE(img->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_ATTACHMENTSDESC_STORAGE_IMAGE); + _SG_VALIDATE(img->cmn.usage.storage_attachment, VALIDATE_ATTACHMENTSDESC_STORAGE_IMAGE_NO_STORAGEATTACHMENT); + _SG_VALIDATE(att->mip_level < img->cmn.num_mipmaps, VALIDATE_ATTACHMENTSDESC_STORAGE_MIPLEVEL); + if (img->cmn.type == SG_IMAGETYPE_CUBE) { + _SG_VALIDATE(att->slice < 6, VALIDATE_ATTACHMENTSDESC_STORAGE_FACE); + } else if (img->cmn.type == SG_IMAGETYPE_ARRAY) { + _SG_VALIDATE(att->slice < img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_STORAGE_LAYER); + } else if (img->cmn.type == SG_IMAGETYPE_3D) { + _SG_VALIDATE(att->slice < img->cmn.num_slices, VALIDATE_ATTACHMENTSDESC_STORAGE_SLICE); + } + _SG_VALIDATE(_sg_is_valid_attachment_storage_format(img->cmn.pixel_format), VALIDATE_ATTACHMENTSDESC_STORAGE_INV_PIXELFORMAT); + } + } + } + _SG_VALIDATE(has_color_atts || has_depth_stencil_att || has_storage_atts, VALIDATE_ATTACHMENTSDESC_NO_ATTACHMENTS); + if (has_color_atts || has_depth_stencil_att) { + _SG_VALIDATE(!has_storage_atts, VALIDATE_ATTACHMENTSDESC_RENDER_VS_STORAGE_ATTACHMENTS); + } + if (has_storage_atts) { + _SG_VALIDATE(!(has_color_atts || has_depth_stencil_att), VALIDATE_ATTACHMENTSDESC_RENDER_VS_STORAGE_ATTACHMENTS); + } return _sg_validate_end(); #endif } @@ -18425,8 +19327,24 @@ _SOKOL_PRIVATE bool _sg_validate_begin_pass(const sg_pass* pass) { _SG_VALIDATE(pass->_start_canary == 0, VALIDATE_BEGINPASS_CANARY); _SG_VALIDATE(pass->_end_canary == 0, VALIDATE_BEGINPASS_CANARY); if (is_compute_pass) { - // this is a compute pass - _SG_VALIDATE(pass->attachments.id == SG_INVALID_ID, VALIDATE_BEGINPASS_EXPECT_NO_ATTACHMENTS); + // this is a compute pass with optional storage attachments + if (pass->attachments.id) { + const _sg_attachments_t* atts = _sg_lookup_attachments(&_sg.pools, pass->attachments.id); + if (atts) { + _SG_VALIDATE(atts->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_BEGINPASS_ATTACHMENTS_VALID); + _SG_VALIDATE(!atts->cmn.has_render_attachments, VALIDATE_BEGINPASS_COMPUTEPASS_STORAGE_ATTACHMENTS_ONLY); + for (int i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + const _sg_attachment_common_t* storage_att = &atts->cmn.storages[i]; + const _sg_image_t* storage_img = _sg_attachments_storage_image(atts, i); + if (storage_img) { + _SG_VALIDATE(storage_img->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_BEGINPASS_STORAGE_ATTACHMENT_IMAGE); + _SG_VALIDATE(storage_img->slot.id == storage_att->image_id.id, VALIDATE_BEGINPASS_STORAGE_ATTACHMENT_IMAGE); + } + } + } else { + _SG_VALIDATE(atts != 0, VALIDATE_BEGINPASS_ATTACHMENTS_EXISTS); + } + } } else if (is_swapchain_pass) { // this is a swapchain pass _SG_VALIDATE(pass->swapchain.width > 0, VALIDATE_BEGINPASS_SWAPCHAIN_EXPECT_WIDTH); @@ -18477,6 +19395,7 @@ _SOKOL_PRIVATE bool _sg_validate_begin_pass(const sg_pass* pass) { const _sg_attachments_t* atts = _sg_lookup_attachments(&_sg.pools, pass->attachments.id); if (atts) { _SG_VALIDATE(atts->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_BEGINPASS_ATTACHMENTS_VALID); + _SG_VALIDATE(!atts->cmn.has_storage_attachments, VALIDATE_BEGINPASS_RENDERPASS_RENDER_ATTACHMENTS_ONLY); for (int i = 0; i < SG_MAX_COLOR_ATTACHMENTS; i++) { const _sg_attachment_common_t* color_att = &atts->cmn.colors[i]; const _sg_image_t* color_img = _sg_attachments_color_image(atts, i); @@ -18582,24 +19501,49 @@ _SOKOL_PRIVATE bool _sg_validate_apply_pipeline(sg_pipeline pip_id) { _SG_VALIDATE(pip->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_APIP_PIPELINE_VALID); // the pipeline's shader must be alive and valid SOKOL_ASSERT(pip->shader); + const _sg_shader_t* shd = pip->shader; _SG_VALIDATE(_sg.cur_pass.in_pass, VALIDATE_APIP_PASS_EXPECTED); - _SG_VALIDATE(pip->shader->slot.id == pip->cmn.shader_id.id, VALIDATE_APIP_SHADER_EXISTS); - _SG_VALIDATE(pip->shader->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_APIP_SHADER_VALID); + _SG_VALIDATE(shd->slot.id == pip->cmn.shader_id.id, VALIDATE_APIP_SHADER_EXISTS); + _SG_VALIDATE(shd->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_APIP_SHADER_VALID); + + // if pass attachments exist, check that the attachment object is still valid + if (_sg.cur_pass.atts_id.id != SG_INVALID_ID) { + const _sg_attachments_t* atts = _sg.cur_pass.atts; + SOKOL_ASSERT(atts); + _SG_VALIDATE(atts->slot.id == _sg.cur_pass.atts_id.id, VALIDATE_APIP_CURPASS_ATTACHMENTS_EXISTS); + _SG_VALIDATE(atts->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_APIP_CURPASS_ATTACHMENTS_VALID); + } if (pip->cmn.is_compute) { _SG_VALIDATE(_sg.cur_pass.is_compute, VALIDATE_APIP_COMPUTEPASS_EXPECTED); + if (_sg.cur_pass.atts_id.id != SG_INVALID_ID) { + const _sg_attachments_t* atts = _sg.cur_pass.atts; + // a compute pass with storage attachments + // check that the pass storage attachments match the shader expectations + for (int i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (shd->cmn.storage_images[i].stage != SG_SHADERSTAGE_NONE) { + _SG_VALIDATE(atts->cmn.storages[i].image_id.id != SG_INVALID_ID, VALIDATE_APIP_EXPECTED_STORAGE_ATTACHMENT_IMAGE); + if (atts->cmn.storages[i].image_id.id != SG_INVALID_ID) { + const _sg_image_t* att_simg = _sg_lookup_image(&_sg.pools, atts->cmn.storages[i].image_id.id); + _SG_VALIDATE(att_simg && att_simg == _sg_attachments_storage_image(atts, i), VALIDATE_APIP_STORAGE_ATTACHMENT_IMAGE_EXISTS); + if (att_simg) { + _SG_VALIDATE(att_simg->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_APIP_STORAGE_ATTACHMENT_IMAGE_VALID); + _SG_VALIDATE(att_simg->cmn.pixel_format == shd->cmn.storage_images[i].access_format, VALIDATE_APIP_STORAGE_ATTACHMENT_PIXELFORMAT); + _SG_VALIDATE(att_simg->cmn.type == shd->cmn.storage_images[i].image_type, VALIDATE_APIP_STORAGE_ATTACHMENT_IMAGE_TYPE); + } + } + } + } + } } else { _SG_VALIDATE(!_sg.cur_pass.is_compute, VALIDATE_APIP_RENDERPASS_EXPECTED); // check that pipeline attributes match current pass attributes if (_sg.cur_pass.atts_id.id != SG_INVALID_ID) { - // an offscreen pass const _sg_attachments_t* atts = _sg.cur_pass.atts; - SOKOL_ASSERT(atts); - _SG_VALIDATE(atts->slot.id == _sg.cur_pass.atts_id.id, VALIDATE_APIP_CURPASS_ATTACHMENTS_EXISTS); - _SG_VALIDATE(atts->slot.state == SG_RESOURCESTATE_VALID, VALIDATE_APIP_CURPASS_ATTACHMENTS_VALID); - + // an offscreen pass _SG_VALIDATE(pip->cmn.color_count == atts->cmn.num_colors, VALIDATE_APIP_ATT_COUNT); for (int i = 0; i < pip->cmn.color_count; i++) { const _sg_image_t* att_img = _sg_attachments_color_image(atts, i); + SOKOL_ASSERT(att_img); _SG_VALIDATE(pip->cmn.colors[i].pixel_format == att_img->cmn.pixel_format, VALIDATE_APIP_COLOR_FORMAT); _SG_VALIDATE(pip->cmn.sample_count == att_img->cmn.sample_count, VALIDATE_APIP_SAMPLE_COUNT); } @@ -18670,12 +19614,12 @@ _SOKOL_PRIVATE bool _sg_validate_apply_bindings(const sg_bindings* bindings) { for (size_t i = 0; i < SG_MAX_VERTEXBUFFER_BINDSLOTS; i++) { if (pip->cmn.vertex_buffer_layout_active[i]) { _SG_VALIDATE(bindings->vertex_buffers[i].id != SG_INVALID_ID, VALIDATE_ABND_EXPECTED_VB); - // buffers in vertex-buffer-slots must be of type SG_BUFFERTYPE_VERTEXBUFFER + // buffers in vertex-buffer-slots must have vertex buffer usage if (bindings->vertex_buffers[i].id != SG_INVALID_ID) { const _sg_buffer_t* buf = _sg_lookup_buffer(&_sg.pools, bindings->vertex_buffers[i].id); _SG_VALIDATE(buf != 0, VALIDATE_ABND_VB_EXISTS); if (buf && buf->slot.state == SG_RESOURCESTATE_VALID) { - _SG_VALIDATE(SG_BUFFERTYPE_VERTEXBUFFER == buf->cmn.type, VALIDATE_ABND_VB_TYPE); + _SG_VALIDATE(buf->cmn.usage.vertex_buffer, VALIDATE_ABND_VB_TYPE); _SG_VALIDATE(!buf->cmn.append_overflow, VALIDATE_ABND_VB_OVERFLOW); } } @@ -18695,11 +19639,11 @@ _SOKOL_PRIVATE bool _sg_validate_apply_bindings(const sg_bindings* bindings) { _SG_VALIDATE(bindings->index_buffer.id != SG_INVALID_ID, VALIDATE_ABND_NO_IB); } if (bindings->index_buffer.id != SG_INVALID_ID) { - // buffer in index-buffer-slot must be of type SG_BUFFERTYPE_INDEXBUFFER + // buffer in index-buffer-slot must have index buffer usage const _sg_buffer_t* buf = _sg_lookup_buffer(&_sg.pools, bindings->index_buffer.id); _SG_VALIDATE(buf != 0, VALIDATE_ABND_IB_EXISTS); if (buf && buf->slot.state == SG_RESOURCESTATE_VALID) { - _SG_VALIDATE(SG_BUFFERTYPE_INDEXBUFFER == buf->cmn.type, VALIDATE_ABND_IB_TYPE); + _SG_VALIDATE(buf->cmn.usage.index_buffer, VALIDATE_ABND_IB_TYPE); _SG_VALIDATE(!buf->cmn.append_overflow, VALIDATE_ABND_IB_OVERFLOW); } } @@ -18768,15 +19712,36 @@ _SOKOL_PRIVATE bool _sg_validate_apply_bindings(const sg_bindings* bindings) { const _sg_buffer_t* sbuf = _sg_lookup_buffer(&_sg.pools, bindings->storage_buffers[i].id); _SG_VALIDATE(sbuf != 0, VALIDATE_ABND_STORAGEBUFFER_EXISTS); if (sbuf) { - _SG_VALIDATE(sbuf->cmn.type == SG_BUFFERTYPE_STORAGEBUFFER, VALIDATE_ABND_STORAGEBUFFER_BINDING_BUFFERTYPE); + _SG_VALIDATE(sbuf->cmn.usage.storage_buffer, VALIDATE_ABND_STORAGEBUFFER_BINDING_BUFFERTYPE); // read/write bindings are only allowed for immutable buffers if (!shd->cmn.storage_buffers[i].readonly) { - _SG_VALIDATE(sbuf->cmn.usage == SG_USAGE_IMMUTABLE, VALIDATE_ABND_STORAGEBUFFER_READWRITE_IMMUTABLE); + _SG_VALIDATE(sbuf->cmn.usage.immutable, VALIDATE_ABND_STORAGEBUFFER_READWRITE_IMMUTABLE); } } } } } + + // the same image cannot be bound as texture and pass attachment + if (_sg.cur_pass.atts) { + for (size_t img_idx = 0; img_idx < SG_MAX_IMAGE_BINDSLOTS; img_idx++) { + if (shd->cmn.images[img_idx].stage != SG_SHADERSTAGE_NONE) { + const uint32_t img_id = bindings->images[img_idx].id; + if (img_id == SG_INVALID_ID) { + continue; + } + _SG_VALIDATE(img_id != _sg.cur_pass.atts->cmn.depth_stencil.image_id.id, VALIDATE_ABND_IMAGE_BINDING_VS_DEPTHSTENCIL_ATTACHMENT); + for (size_t att_idx = 0; att_idx < SG_MAX_COLOR_ATTACHMENTS; att_idx++) { + _SG_VALIDATE(img_id != _sg.cur_pass.atts->cmn.colors[att_idx].image_id.id, VALIDATE_ABND_IMAGE_BINDING_VS_COLOR_ATTACHMENT); + _SG_VALIDATE(img_id != _sg.cur_pass.atts->cmn.resolves[att_idx].image_id.id, VALIDATE_ABND_IMAGE_BINDING_VS_RESOLVE_ATTACHMENT); + } + for (size_t att_idx = 0; att_idx < SG_MAX_STORAGE_ATTACHMENTS; att_idx++) { + _SG_VALIDATE(img_id != _sg.cur_pass.atts->cmn.storages[att_idx].image_id.id, VALIDATE_ABND_IMAGE_BINDING_VS_STORAGE_ATTACHMENT); + } + } + } + } + return _sg_validate_end(); #endif } @@ -18857,7 +19822,7 @@ _SOKOL_PRIVATE bool _sg_validate_update_buffer(const _sg_buffer_t* buf, const sg } SOKOL_ASSERT(buf && data && data->ptr); _sg_validate_begin(); - _SG_VALIDATE(buf->cmn.usage != SG_USAGE_IMMUTABLE, VALIDATE_UPDATEBUF_USAGE); + _SG_VALIDATE(!buf->cmn.usage.immutable, VALIDATE_UPDATEBUF_USAGE); _SG_VALIDATE(buf->cmn.size >= (int)data->size, VALIDATE_UPDATEBUF_SIZE); _SG_VALIDATE(buf->cmn.update_frame_index != _sg.frame_index, VALIDATE_UPDATEBUF_ONCE); _SG_VALIDATE(buf->cmn.append_frame_index != _sg.frame_index, VALIDATE_UPDATEBUF_APPEND); @@ -18876,7 +19841,7 @@ _SOKOL_PRIVATE bool _sg_validate_append_buffer(const _sg_buffer_t* buf, const sg } SOKOL_ASSERT(buf && data && data->ptr); _sg_validate_begin(); - _SG_VALIDATE(buf->cmn.usage != SG_USAGE_IMMUTABLE, VALIDATE_APPENDBUF_USAGE); + _SG_VALIDATE(!buf->cmn.usage.immutable, VALIDATE_APPENDBUF_USAGE); _SG_VALIDATE(buf->cmn.size >= (buf->cmn.append_pos + (int)data->size), VALIDATE_APPENDBUF_SIZE); _SG_VALIDATE(buf->cmn.update_frame_index != _sg.frame_index, VALIDATE_APPENDBUF_UPDATE); return _sg_validate_end(); @@ -18894,7 +19859,7 @@ _SOKOL_PRIVATE bool _sg_validate_update_image(const _sg_image_t* img, const sg_i } SOKOL_ASSERT(img && data); _sg_validate_begin(); - _SG_VALIDATE(img->cmn.usage != SG_USAGE_IMMUTABLE, VALIDATE_UPDIMG_USAGE); + _SG_VALIDATE(!img->cmn.usage.immutable, VALIDATE_UPDIMG_USAGE); _SG_VALIDATE(img->cmn.upd_frame_index != _sg.frame_index, VALIDATE_UPDIMG_ONCE); _sg_validate_image_data(data, img->cmn.pixel_format, @@ -18914,23 +19879,42 @@ _SOKOL_PRIVATE bool _sg_validate_update_image(const _sg_image_t* img, const sg_i // ██ ██ ███████ ███████ ██████ ██████ ██ ██ ██████ ███████ ███████ // // >>resources +_SOKOL_PRIVATE sg_buffer_usage _sg_buffer_usage_defaults(const sg_buffer_usage* usg) { + sg_buffer_usage def = *usg; + if (!(def.vertex_buffer || def.index_buffer || def.storage_buffer)) { + def.vertex_buffer = true; + } + if (!(def.immutable || def.stream_update || def.dynamic_update)) { + def.immutable = true; + } + return def; +} + + _SOKOL_PRIVATE sg_buffer_desc _sg_buffer_desc_defaults(const sg_buffer_desc* desc) { sg_buffer_desc def = *desc; - def.type = _sg_def(def.type, SG_BUFFERTYPE_VERTEXBUFFER); - def.usage = _sg_def(def.usage, SG_USAGE_IMMUTABLE); + def.usage = _sg_buffer_usage_defaults(&def.usage); if (def.size == 0) { def.size = def.data.size; } return def; } +_SOKOL_PRIVATE sg_image_usage _sg_image_usage_defaults(const sg_image_usage *usg) { + sg_image_usage def = *usg; + if (!(def.immutable || def.stream_update || def.dynamic_update)) { + def.immutable = true; + } + return def; +} + _SOKOL_PRIVATE sg_image_desc _sg_image_desc_defaults(const sg_image_desc* desc) { sg_image_desc def = *desc; def.type = _sg_def(def.type, SG_IMAGETYPE_2D); + def.usage = _sg_image_usage_defaults(&def.usage); def.num_slices = _sg_def(def.num_slices, 1); def.num_mipmaps = _sg_def(def.num_mipmaps, 1); - def.usage = _sg_def(def.usage, SG_USAGE_IMMUTABLE); - if (desc->render_target) { + if (def.usage.render_attachment) { def.pixel_format = _sg_def(def.pixel_format, _sg.desc.environment.defaults.color_format); def.sample_count = _sg_def(def.sample_count, _sg.desc.environment.defaults.sample_count); } else { @@ -19285,44 +20269,57 @@ _SOKOL_PRIVATE void _sg_init_attachments(_sg_attachments_t* atts, const sg_attac SOKOL_ASSERT(atts && atts->slot.state == SG_RESOURCESTATE_ALLOC); SOKOL_ASSERT(desc); if (_sg_validate_attachments_desc(desc)) { - // lookup pass attachment image pointers - _sg_image_t* color_images[SG_MAX_COLOR_ATTACHMENTS] = { 0 }; - _sg_image_t* resolve_images[SG_MAX_COLOR_ATTACHMENTS] = { 0 }; - _sg_image_t* ds_image = 0; - // NOTE: validation already checked that all surfaces are same width/height + // resolve image pointers, track width and height of render attachments, + // the validation layer already ensured that render attachments have the + // same width and height (which doesn't matter for storage attachments) + _sg_attachments_ptrs_t atts_ptrs; + _sg_clear(&atts_ptrs, sizeof(atts_ptrs)); int width = 0; int height = 0; - for (int i = 0; i < SG_MAX_COLOR_ATTACHMENTS; i++) { + for (size_t i = 0; i < SG_MAX_COLOR_ATTACHMENTS; i++) { if (desc->colors[i].image.id) { - color_images[i] = _sg_lookup_image(&_sg.pools, desc->colors[i].image.id); - if (!(color_images[i] && color_images[i]->slot.state == SG_RESOURCESTATE_VALID)) { + _sg_image_t* img = _sg_lookup_image(&_sg.pools, desc->colors[i].image.id); + if (!(img && img->slot.state == SG_RESOURCESTATE_VALID)) { atts->slot.state = SG_RESOURCESTATE_FAILED; return; } const int mip_level = desc->colors[i].mip_level; - width = _sg_miplevel_dim(color_images[i]->cmn.width, mip_level); - height = _sg_miplevel_dim(color_images[i]->cmn.height, mip_level); + width = _sg_miplevel_dim(img->cmn.width, mip_level); + height = _sg_miplevel_dim(img->cmn.height, mip_level); + atts_ptrs.color_images[i] = img; } if (desc->resolves[i].image.id) { - resolve_images[i] = _sg_lookup_image(&_sg.pools, desc->resolves[i].image.id); - if (!(resolve_images[i] && resolve_images[i]->slot.state == SG_RESOURCESTATE_VALID)) { + _sg_image_t* img = _sg_lookup_image(&_sg.pools, desc->resolves[i].image.id); + if (!(img && img->slot.state == SG_RESOURCESTATE_VALID)) { atts->slot.state = SG_RESOURCESTATE_FAILED; return; } + atts_ptrs.resolve_images[i] = img; } } if (desc->depth_stencil.image.id) { - ds_image = _sg_lookup_image(&_sg.pools, desc->depth_stencil.image.id); - if (!(ds_image && ds_image->slot.state == SG_RESOURCESTATE_VALID)) { + _sg_image_t* img = _sg_lookup_image(&_sg.pools, desc->depth_stencil.image.id); + if (!(img && img->slot.state == SG_RESOURCESTATE_VALID)) { atts->slot.state = SG_RESOURCESTATE_FAILED; return; } const int mip_level = desc->depth_stencil.mip_level; - width = _sg_miplevel_dim(ds_image->cmn.width, mip_level); - height = _sg_miplevel_dim(ds_image->cmn.height, mip_level); + width = _sg_miplevel_dim(img->cmn.width, mip_level); + height = _sg_miplevel_dim(img->cmn.height, mip_level); + atts_ptrs.ds_image = img; + } + for (size_t i = 0; i < SG_MAX_STORAGE_ATTACHMENTS; i++) { + if (desc->storages[i].image.id) { + _sg_image_t* img = _sg_lookup_image(&_sg.pools, desc->storages[i].image.id); + if (!(img && img->slot.state == SG_RESOURCESTATE_VALID)) { + atts->slot.state = SG_RESOURCESTATE_FAILED; + return; + } + atts_ptrs.storage_images[i] = img; + } } _sg_attachments_common_init(&atts->cmn, desc, width, height); - atts->slot.state = _sg_create_attachments(atts, color_images, resolve_images, ds_image, desc); + atts->slot.state = _sg_create_attachments(atts, &atts_ptrs, desc); } else { atts->slot.state = SG_RESOURCESTATE_FAILED; } @@ -19575,6 +20572,8 @@ SOKOL_API_IMPL sg_pixelformat_info sg_query_pixelformat(sg_pixel_format fmt) { res.msaa = src->msaa; res.depth = src->depth; res.compressed = _sg_is_compressed_pixel_format(fmt); + res.read = src->read; + res.write = src->write; if (!res.compressed) { res.bytes_per_pixel = _sg_pixelformat_bytesize(fmt); } @@ -20220,36 +21219,33 @@ SOKOL_API_IMPL void sg_begin_pass(const sg_pass* pass) { SOKOL_ASSERT(_sg.valid); SOKOL_ASSERT(!_sg.cur_pass.valid); SOKOL_ASSERT(!_sg.cur_pass.in_pass); + SOKOL_ASSERT(_sg.cur_pass.atts == 0); SOKOL_ASSERT(pass); SOKOL_ASSERT((pass->_start_canary == 0) && (pass->_end_canary == 0)); const sg_pass pass_def = _sg_pass_defaults(pass); if (!_sg_validate_begin_pass(&pass_def)) { return; } - if (!pass_def.compute) { - if (pass_def.attachments.id != SG_INVALID_ID) { - // an offscreen pass - SOKOL_ASSERT(_sg.cur_pass.atts == 0); - _sg.cur_pass.atts = _sg_lookup_attachments(&_sg.pools, pass_def.attachments.id); - if (0 == _sg.cur_pass.atts) { - _SG_ERROR(BEGINPASS_ATTACHMENT_INVALID); - return; - } - _sg.cur_pass.atts_id = pass_def.attachments; - _sg.cur_pass.width = _sg.cur_pass.atts->cmn.width; - _sg.cur_pass.height = _sg.cur_pass.atts->cmn.height; - } else { - // a swapchain pass - SOKOL_ASSERT(pass_def.swapchain.width > 0); - SOKOL_ASSERT(pass_def.swapchain.height > 0); - SOKOL_ASSERT(pass_def.swapchain.color_format > SG_PIXELFORMAT_NONE); - SOKOL_ASSERT(pass_def.swapchain.sample_count > 0); - _sg.cur_pass.width = pass_def.swapchain.width; - _sg.cur_pass.height = pass_def.swapchain.height; - _sg.cur_pass.swapchain.color_fmt = pass_def.swapchain.color_format; - _sg.cur_pass.swapchain.depth_fmt = pass_def.swapchain.depth_format; - _sg.cur_pass.swapchain.sample_count = pass_def.swapchain.sample_count; + if (pass_def.attachments.id != SG_INVALID_ID) { + _sg.cur_pass.atts = _sg_lookup_attachments(&_sg.pools, pass_def.attachments.id); + if (0 == _sg.cur_pass.atts) { + _SG_ERROR(BEGINPASS_ATTACHMENT_INVALID); + return; } + _sg.cur_pass.atts_id = pass_def.attachments; + _sg.cur_pass.width = _sg.cur_pass.atts->cmn.width; + _sg.cur_pass.height = _sg.cur_pass.atts->cmn.height; + } else if (!pass_def.compute) { + // a swapchain pass + SOKOL_ASSERT(pass_def.swapchain.width > 0); + SOKOL_ASSERT(pass_def.swapchain.height > 0); + SOKOL_ASSERT(pass_def.swapchain.color_format > SG_PIXELFORMAT_NONE); + SOKOL_ASSERT(pass_def.swapchain.sample_count > 0); + _sg.cur_pass.width = pass_def.swapchain.width; + _sg.cur_pass.height = pass_def.swapchain.height; + _sg.cur_pass.swapchain.color_fmt = pass_def.swapchain.color_format; + _sg.cur_pass.swapchain.depth_fmt = pass_def.swapchain.depth_format; + _sg.cur_pass.swapchain.sample_count = pass_def.swapchain.sample_count; } _sg.cur_pass.valid = true; // may be overruled by backend begin-pass functions _sg.cur_pass.in_pass = true; @@ -20342,7 +21338,7 @@ SOKOL_API_IMPL void sg_apply_bindings(const sg_bindings* bindings) { return; } - _sg_bindings_t bnd; + _sg_bindings_ptrs_t bnd; _sg_clear(&bnd, sizeof(bnd)); bnd.pip = _sg_lookup_pipeline(&_sg.pools, _sg.cur_pipeline.id); if (0 == bnd.pip) { @@ -20761,7 +21757,6 @@ SOKOL_API_IMPL sg_buffer_desc sg_query_buffer_desc(sg_buffer buf_id) { const _sg_buffer_t* buf = _sg_lookup_buffer(&_sg.pools, buf_id.id); if (buf) { desc.size = (size_t)buf->cmn.size; - desc.type = buf->cmn.type; desc.usage = buf->cmn.usage; } return desc; @@ -20776,22 +21771,15 @@ SOKOL_API_IMPL size_t sg_query_buffer_size(sg_buffer buf_id) { return 0; } -SOKOL_API_IMPL sg_buffer_type sg_query_buffer_type(sg_buffer buf_id) { +SOKOL_API_IMPL sg_buffer_usage sg_query_buffer_usage(sg_buffer buf_id) { SOKOL_ASSERT(_sg.valid); + sg_buffer_usage usg; + _sg_clear(&usg, sizeof(usg)); const _sg_buffer_t* buf = _sg_lookup_buffer(&_sg.pools, buf_id.id); if (buf) { - return buf->cmn.type; + usg = buf->cmn.usage; } - return _SG_BUFFERTYPE_DEFAULT; -} - -SOKOL_API_IMPL sg_usage sg_query_buffer_usage(sg_buffer buf_id) { - SOKOL_ASSERT(_sg.valid); - const _sg_buffer_t* buf = _sg_lookup_buffer(&_sg.pools, buf_id.id); - if (buf) { - return buf->cmn.usage; - } - return _SG_USAGE_DEFAULT; + return usg; } SOKOL_API_IMPL sg_image_desc sg_query_image_desc(sg_image img_id) { @@ -20801,7 +21789,6 @@ SOKOL_API_IMPL sg_image_desc sg_query_image_desc(sg_image img_id) { const _sg_image_t* img = _sg_lookup_image(&_sg.pools, img_id.id); if (img) { desc.type = img->cmn.type; - desc.render_target = img->cmn.render_target; desc.width = img->cmn.width; desc.height = img->cmn.height; desc.num_slices = img->cmn.num_slices; @@ -20867,13 +21854,15 @@ SOKOL_API_IMPL sg_pixel_format sg_query_image_pixelformat(sg_image img_id) { return _SG_PIXELFORMAT_DEFAULT; } -SOKOL_API_IMPL sg_usage sg_query_image_usage(sg_image img_id) { +SOKOL_API_IMPL sg_image_usage sg_query_image_usage(sg_image img_id) { SOKOL_ASSERT(_sg.valid); + sg_image_usage usg; + _sg_clear(&usg, sizeof(usg)); const _sg_image_t* img = _sg_lookup_image(&_sg.pools, img_id.id); if (img) { - return img->cmn.usage; + usg = img->cmn.usage; } - return _SG_USAGE_DEFAULT; + return usg; } SOKOL_API_IMPL int sg_query_image_sample_count(sg_image img_id) { @@ -20925,6 +21914,14 @@ SOKOL_API_IMPL sg_shader_desc sg_query_shader_desc(sg_shader shd_id) { sbuf_desc->stage = sbuf->stage; sbuf_desc->readonly = sbuf->readonly; } + for (size_t simg_idx = 0; simg_idx < SG_MAX_STORAGE_ATTACHMENTS; simg_idx++) { + sg_shader_storage_image* simg_desc = &desc.storage_images[simg_idx]; + const _sg_shader_storage_image_t* simg = &shd->cmn.storage_images[simg_idx]; + simg_desc->stage = simg->stage; + simg_desc->access_format = simg->access_format; + simg_desc->image_type = simg->image_type; + simg_desc->writeonly = simg->writeonly; + } for (size_t img_idx = 0; img_idx < SG_MAX_IMAGE_BINDSLOTS; img_idx++) { sg_shader_image* img_desc = &desc.images[img_idx]; const _sg_shader_image_t* img = &shd->cmn.images[img_idx]; diff --git a/thirdparty/sokol/c/sokol_gl.h b/thirdparty/sokol/c/sokol_gl.h index b419b15..8f5211c 100644 --- a/thirdparty/sokol/c/sokol_gl.h +++ b/thirdparty/sokol/c/sokol_gl.h @@ -3321,8 +3321,8 @@ static void _sgl_init_context(sgl_context ctx_id, const sgl_context_desc_t* in_d sg_buffer_desc vbuf_desc; _sgl_clear(&vbuf_desc, sizeof(vbuf_desc)); vbuf_desc.size = (size_t)ctx->vertices.cap * sizeof(_sgl_vertex_t); - vbuf_desc.type = SG_BUFFERTYPE_VERTEXBUFFER; - vbuf_desc.usage = SG_USAGE_STREAM; + vbuf_desc.usage.vertex_buffer = true; + vbuf_desc.usage.stream_update = true; vbuf_desc.label = "sgl-vertex-buffer"; ctx->vbuf = sg_make_buffer(&vbuf_desc); SOKOL_ASSERT(SG_INVALID_ID != ctx->vbuf.id); diff --git a/thirdparty/sokol/c/sokol_shape.h b/thirdparty/sokol/c/sokol_shape.h index d1676dd..67221dc 100644 --- a/thirdparty/sokol/c/sokol_shape.h +++ b/thirdparty/sokol/c/sokol_shape.h @@ -1355,8 +1355,8 @@ SOKOL_API_IMPL sg_buffer_desc sshape_vertex_buffer_desc(const sshape_buffer_t* b SOKOL_ASSERT(buf && buf->valid); sg_buffer_desc desc = { 0 }; if (buf->valid) { - desc.type = SG_BUFFERTYPE_VERTEXBUFFER; - desc.usage = SG_USAGE_IMMUTABLE; + desc.usage.vertex_buffer = true; + desc.usage.immutable = true; desc.data.ptr = buf->vertices.buffer.ptr; desc.data.size = buf->vertices.data_size; } @@ -1367,8 +1367,8 @@ SOKOL_API_IMPL sg_buffer_desc sshape_index_buffer_desc(const sshape_buffer_t* bu SOKOL_ASSERT(buf && buf->valid); sg_buffer_desc desc = { 0 }; if (buf->valid) { - desc.type = SG_BUFFERTYPE_INDEXBUFFER; - desc.usage = SG_USAGE_IMMUTABLE; + desc.usage.index_buffer = true; + desc.usage.immutable = true; desc.data.ptr = buf->indices.buffer.ptr; desc.data.size = buf->indices.data_size; } diff --git a/thirdparty/sokol/debugtext/sokol_debugtext_windows_x64_d3d11_debug.lib b/thirdparty/sokol/debugtext/sokol_debugtext_windows_x64_d3d11_debug.lib index eca9bf3dba1e9d3f5f36bb32170171b7cc836126..b375b83e80ec6fbc0ab70f972c556ac1c858ba67 100644 GIT binary patch delta 13948 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 WTWX#9<43x)=4kd3YulgJW&Im$t;S0L diff --git a/thirdparty/sokol/debugtext/sokol_debugtext_windows_x64_gl_debug.lib b/thirdparty/sokol/debugtext/sokol_debugtext_windows_x64_gl_debug.lib index 2abac6dcdb3c8d0fe7f123fcf99c90a8a46f450b..0696636f54900e335de52a7cdaba448b6ae3a09f 100644 GIT binary patch delta 13948 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 F{}*1uzS;l) delta 13460 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 aGO3KkQpDs==^=X(WNr2CO_8!Mqy7&Ibuiul diff --git a/thirdparty/sokol/debugtext/sokol_debugtext_windows_x64_gl_release.lib b/thirdparty/sokol/debugtext/sokol_debugtext_windows_x64_gl_release.lib index 37b4b0b5c2021e833984eda628b95c7c1138a27e..3b8a3d492cfa17f3e9994a4f8e550fa54e3f8222 100644 GIT binary patch delta 2479 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 diff --git a/thirdparty/sokol/gfx/gfx.odin b/thirdparty/sokol/gfx/gfx.odin index f5eb264..2ebe2a2 100644 --- a/thirdparty/sokol/gfx/gfx.odin +++ b/thirdparty/sokol/gfx/gfx.odin @@ -114,7 +114,7 @@ package sokol_gfx }); --- create resource objects (at least buffers, shaders and pipelines, - and optionally images, samplers and render-pass-attachments): + and optionally images, samplers and render/compute-pass-attachments): sg_buffer sg_make_buffer(const sg_buffer_desc*) sg_image sg_make_image(const sg_image_desc*) @@ -148,17 +148,22 @@ package sokol_gfx sg_begin_pass(&(sg_pass){ .compute = true }); + If the compute pass writes into storage images, provide those as + 'storage attachments' via an sg_attachments object: + + sg_begin_pass(&(sg_pass){ .compute = true, .attachments = attattachments }); + --- set the pipeline state for the next draw call with: sg_apply_pipeline(sg_pipeline pip) --- fill an sg_bindings struct with the resource bindings for the next draw- or dispatch-call (0..N vertex buffers, 0 or 1 index buffer, 0..N images, - samplers and storage-buffers), and call: + samplers and storage-buffers), and call sg_apply_bindings(const sg_bindings* bindings) - to update the resource bindings. Note that in a compute pass, no vertex- + ...to update the resource bindings. Note that in a compute pass, no vertex- or index-buffer bindings are allowed and will be rejected by the validation layer. @@ -239,7 +244,7 @@ package sokol_gfx sg_update_image(sg_image img, const sg_image_data* data) Buffers and images to be updated must have been created with - SG_USAGE_DYNAMIC or SG_USAGE_STREAM. + sg_buffer_desc.usage.dynamic_update or .stream_update. Only one update per frame is allowed for buffer and image resources when using the sg_update_*() functions. The rationale is to have a simple @@ -278,7 +283,7 @@ package sokol_gfx } A buffer to be used with sg_append_buffer() must have been created - with SG_USAGE_DYNAMIC or SG_USAGE_STREAM. + with sg_buffer_desc.usage.dynamic_update or .stream_update. If the application appends more data to the buffer then fits into the buffer, the buffer will go into the "overflow" state for the @@ -396,7 +401,7 @@ package sokol_gfx This is why calling sg_query_surface_pitch() for a compressed pixel format and height N, N+1, N+2, ... may return the same result. - The row_align_bytes parammeter is for added flexibility. For image data that goes into + The row_align_bytes parameter is for added flexibility. For image data that goes into the sg_make_image() or sg_update_image() this should generally be 1, because these functions take tightly packed image data as input no matter what alignment restrictions exist in the backend 3D APIs. @@ -702,10 +707,11 @@ package sokol_gfx ON COMPUTE PASSES ================= - Compute passes are used to update the content of storage resources - (currently only storage buffers) by running compute shader code on - the GPU. This will almost always be more efficient than computing - that same data on the CPU and uploading the data via `sg_update_buffer()`. + Compute passes are used to update the content of storage buffers and + storage images by running compute shader code on + the GPU. Updating storage resources with a compute shader will almost always + be more efficient than computing the same data on the CPU and then uploading + it via `sg_update_buffer()` or `sg_update_image()`. NOTE: compute passes are only supported on the following platforms and backends: @@ -724,33 +730,49 @@ package sokol_gfx - iOS with GLES3 - Web with WebGL2 - A compute pass is started with: + A compute pass which only updates storage buffers is started with: sg_begin_pass(&(sg_pass){ .compute = true }); - ...and finished with: + ...if the compute pass updates storage images, the images must be 'bound' + via an sg_attachments object: + + sg_begin_pass(&(sg_pass){ .compute = true, .attachments = attachments }); + + Image objects in such a compute pass attachments object must be created with + `storage_attachment` usage: + + sg_image storage_image = sg_make_image(&(sg_image_desc){ + .usage = { + .storage_attachment = true, + }, + // ... + }); + + ...a compute pass is finished with a regular: sg_end_pass(); Typically the following functions will be called inside a compute pass: - sg_apply_pipeline - sg_apply_bindings - sg_apply_uniforms - sg_dispatch + sg_apply_pipeline() + sg_apply_bindings() + sg_apply_uniforms() + sg_dispatch() The following functions are disallowed inside a compute pass and will cause validation layer errors: - sg_apply_viewport[f] - sg_apply_scissor_rect[f] - sg_draw + sg_apply_viewport[f]() + sg_apply_scissor_rect[f]() + sg_draw() Only special 'compute shaders' and 'compute pipelines' can be used in compute passes. A compute shader only has a compute-function instead of a vertex- and fragment-function pair, and it doesn't accept vertex- - and index-buffers as input, only storage-buffers, textures and non-filtering - samplers (more details on compute shaders in the following section). + and index-buffers as input, only storage-buffers, textures, non-filtering + samplers and images via storage attachments (more details on compute shaders in + the following section). A compute pipeline is created by providing a compute shader object, setting the .compute creation parameter to true and not defining any @@ -774,6 +796,7 @@ package sokol_gfx - https://floooh.github.io/sokol-webgpu/instancing-compute-sapp.html - https://floooh.github.io/sokol-webgpu/computeboids-sapp.html + - https://floooh.github.io/sokol-webgpu/imageblur-sapp.html ON SHADER CREATION @@ -787,7 +810,8 @@ package sokol_gfx The easiest way to provide all this shader creation data is to use the sokol-shdc shader compiler tool to compile shaders from a common GLSL syntax into backend-specific sources or binary blobs, along with - shader interface information and uniform blocks mapped to C structs. + shader interface information and uniform blocks and storage buffer array items + mapped to C structs. To create a shader using a C header which has been code-generated by sokol-shdc: @@ -816,7 +840,9 @@ package sokol_gfx - for the desktop GL backend, source code can be provided in '#version 410' or '#version 430', version 430 is required when using storage buffers and compute shaders support, but note that this is not available on macOS - - for the GLES3 backend, source code must be provided in '#version 300 es' syntax + - for the GLES3 backend, source code must be provided in '#version 300 es' or + '#version 310 es' syntax (version 310 is required for storage buffer and + compute shader support, but note that this is not supported on WebGL2) - for the D3D11 backend, shaders can be provided as source or binary blobs, the source code should be in HLSL4.0 (for compatibility with old low-end GPUs) or preferably in HLSL5.0 syntax, note that when @@ -863,7 +889,7 @@ package sokol_gfx .mtl_threads_per_threadgroup = { .x = 64, .y = 1, .z = 1 }, } - - Information about each uniform block used in the shader: + - Information about each uniform block binding used in the shader: - the shader stage of the uniform block (vertex, fragment or compute) - the size of the uniform block in number of bytes - a memory layout hint (currently 'native' or 'std140') where 'native' defines a @@ -879,7 +905,7 @@ package sokol_gfx - please also NOTE the documentation sections about UNIFORM DATA LAYOUT and CROSS-BACKEND COMMON UNIFORM DATA LAYOUT below! - - A description of each storage buffer used in the shader: + - A description of each storage buffer binding used in the shader: - the shader stage of the storage buffer - a boolean 'readonly' flag, this is used for validation and hazard tracking in some 3D backends. Note that in render passes, only @@ -893,15 +919,41 @@ package sokol_gfx buffers and textures share the same bind space for 'shader resource views') - for read/write storage buffer buffer bindings: the UAV register N - (`register(uN)`) where N is 0..7 (in HLSL, readwrite storage + (`register(uN)`) where N is 0..11 (in HLSL, readwrite storage buffers use their own bind space for 'unordered access views') - Metal/MSL: the buffer bind slot N (`[[buffer(N)]]`) where N is 8..15 - WebGPU/WGSL: the binding N in `@group(0) @binding(N)` where N is 0..127 - GL/GLSL: the buffer binding N in `layout(binding=N)` where N is 0..7 - - note that storage buffers are not supported on all backends + - note that storage buffer bindings are not supported on all backends and platforms - - A description of each texture/image used in the shader: + - A description of each storage image binding used in the shader (only supported + in compute shaders): + - the shader stage (*must* be compute) + - the expected image type: + - SG_IMAGETYPE_2D + - SG_IMAGETYPE_CUBE + - SG_IMAGETYPE_3D + - SG_IMAGETYPE_ARRAY + - the 'access pixel format', this is currently limited to: + - SG_PIXELFORMAT_RGBA8 + - SG_PIXELFORMAT_RGBA8SN/UI/SI + - SG_PIXELFORMAT_RGBA16UI/SI/F + - SG_PIXELFORMAT_R32UIUI/SI/F + - SG_PIXELFORMAT_RG32UI/SI/F + - SG_PIXELFORMAT_RGBA32UI/SI/F + - the access type (readwrite or writeonly) + - a backend-specific bind slot: + - D3D11/HLSL: the UAV register N (`register(uN)` where N is 0..11, the + bind slot must not collide with UAV storage buffer bindings + - Metal/MSL: the texture bind slot N (`[[texture(N)]])` where N is 0..19, + the bind slot must not collide with other texture bindings on the same + stage + - WebGPU/WGSL: the binding N in `@group(2) @binding(N)` where N is 0..3 + - GL/GLSL: the buffer binding N in `layout(binding=N)` where N is 0..3 + - note that storage image bindings are not supported on all backends and platforms + + - A description of each texture binding used in the shader: - the shader stage of the texture (vertex, fragment or compute) - the expected image type: - SG_IMAGETYPE_2D @@ -918,7 +970,8 @@ package sokol_gfx - a backend-specific bind slot: - D3D11/HLSL: the texture register N (`register(tN)`) where N is 0..23 (in HLSL, readonly storage buffers and texture share the same bind space) - - Metal/MSL: the texture bind slot N (`[[texture(N)]]`) where N is 0..15 + - Metal/MSL: the texture bind slot N (`[[texture(N)]]`) where N is 0..19 + (the bind slot must not collide with storage image bindings on the same stage) - WebGPU/WGSL: the binding N in `@group(0) @binding(N)` where N is 0..127 - A description of each sampler used in the shader: @@ -953,24 +1006,26 @@ package sokol_gfx - D3D11/HLSL: - separate bindslot space per shader stage - - uniform blocks (as cbuffer): `register(b0..b7)` - - textures and readonly storage buffers: `register(t0..t23)` - - read/write storage buffers: `register(u0..u7)` + - uniform block bindings (as cbuffer): `register(b0..b7)` + - texture- and readonly storage buffer bindings: `register(t0..t23)` + - read/write storage buffer and storage image bindings: `register(u0..u11)` - samplers: `register(s0..s15)` - Metal/MSL: - separate bindslot space per shader stage - uniform blocks: `[[buffer(0..7)]]` - storage buffers: `[[buffer(8..15)]]` - - textures: `[[texture(0..15)]]` + - textures and storage image bindings: `[[texture(0..19)]]` - samplers: `[[sampler(0..15)]]` - WebGPU/WGSL: - common bindslot space across shader stages - uniform blocks: `@group(0) @binding(0..15)` - textures, samplers and storage buffers: `@group(1) @binding(0..127)` + - storage image bindings: `@group(2) @binding(0..3)` - GL/GLSL: - uniforms and image-samplers are bound by name - - storage buffers: `layout(std430, binding=0..7)` (common + - storage buffer bindings: `layout(std430, binding=0..7)` (common bindslot space across shader stages) + - storage image bindings: `layout(binding=0..3, [access_format])` For example code of how to create backend-specific shader objects, please refer to the following samples: @@ -1194,7 +1249,7 @@ package sokol_gfx can only read from storage buffers, while compute-shaders can both read and write storage buffers) - create one or more storage buffers via sg_make_buffer() with the - buffer type SG_BUFFERTYPE_STORAGEBUFFER + `.usage.storage_buffer = true` - when creating a shader via sg_make_shader(), populate the sg_shader_desc struct with binding info (when using sokol-shdc, this step will be taken care of automatically) @@ -1305,8 +1360,8 @@ package sokol_gfx (https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/sm5-object-rwbyteaddressbuffer) - readonly-storage buffers and textures are both bound as 'shader-resource-view' and share the same bind slots (declared as `register(tN)` in HLSL), where N must be in the range 0..23) - - read/write storage buffers are bound as 'unordered-access-view' (declared as `register(uN)` in HLSL - where N is in the range 0..7) + - read/write storage buffers and storage images are bound as 'unordered-access-view' + (declared as `register(uN)` in HLSL where N is in the range 0..11) Metal: - in Metal there is no internal difference between vertex-, uniform- and @@ -1333,6 +1388,53 @@ package sokol_gfx `@group(1) @binding(0..127) + ON STORAGE IMAGES: + ================== + To write pixel data to texture objects in compute shaders, first an image + object must be created with `storage_attachment usage`: + + sg_image storage_image = sg_make_image(&(sg_image_desc){ + .usage = { + .storage_attachment = true, + }, + .width = ..., + .height = ..., + .pixel_format = ..., + }); + + ...next the image object must be wrapped in an attachment object, this allows + to pick a specific mipmap level or slice to be accessed by the compute shader: + + sg_attachments storage_attachment = sg_make_attachment(&(sg_attachments_desc){ + .storages[0] = { + .image = storage_image, + .mip_level = ..., + .slice = ..., + }, + }); + + Finally 'bind' the storage image as pass attachment in the `sg_begin_pass` + call of a compute pass: + + sg_begin_pass(&(sg_pass){ .compute = true, .attachments = storage_attachments }); + ... + sg_end_pass(); + + Storage attachments should only be accessed as `readwrite` or `writeonly` mode + in compute shaders because if the limited bind space of up to 4 slots. For + readonly access, just bind the storage image as regular texture via + `sg_apply_bindings()`. + + For an example of using storage images in compute shaders see imageblur-sapp: + + - C code: https://github.com/floooh/sokol-samples/blob/master/sapp/imageblur-sapp.c + - shader: https://github.com/floooh/sokol-samples/blob/master/sapp/imageblur-sapp.glsl + + NOTE: in the (hopefully not-too-distant) future, working with storage + images will change by moving the resource binding from pass attachments to + regular bindings via `sg_apply_bindings()`, but this requires the + introduction of resource view objects into sokol-gfx (see planning + ticket: https://github.com/floooh/sokol/issues/1252) TRACE HOOKS: ============ @@ -1667,6 +1769,11 @@ package sokol_gfx @group(1) @binding(0..127) + All storage image attachments must use `@group(2)` and bindings + must be in the range 0..3: + + @group(2) @binding(0..3) + Note that the number of texture, sampler and storage buffer bindings is still limited despite the large bind range: @@ -1721,7 +1828,7 @@ package sokol_gfx - Likewise, the following sokol-gfx pixel formats are not supported in WebGPU: R16, R16SN, RG16, RG16SN, RGBA16, RGBA16SN. Unlike unsupported vertex formats, unsupported pixel formats can be queried - in cross-backend code via sg_query_pixel_format() though. + in cross-backend code via sg_query_pixelformat() though. - The Emscripten WebGPU shim currently doesn't support the Closure minification post-link-step (e.g. currently the emcc argument '--closure 1' or '--closure 2' @@ -1913,15 +2020,14 @@ foreign sokol_gfx_clib { query_attachments_defaults :: proc(#by_ptr desc: Attachments_Desc) -> Attachments_Desc --- // assorted query functions query_buffer_size :: proc(buf: Buffer) -> c.size_t --- - query_buffer_type :: proc(buf: Buffer) -> Buffer_Type --- - query_buffer_usage :: proc(buf: Buffer) -> Usage --- + query_buffer_usage :: proc(buf: Buffer) -> Buffer_Usage --- query_image_type :: proc(img: Image) -> Image_Type --- query_image_width :: proc(img: Image) -> c.int --- query_image_height :: proc(img: Image) -> c.int --- query_image_num_slices :: proc(img: Image) -> c.int --- query_image_num_mipmaps :: proc(img: Image) -> c.int --- query_image_pixelformat :: proc(img: Image) -> Pixel_Format --- - query_image_usage :: proc(img: Image) -> Usage --- + query_image_usage :: proc(img: Image) -> Image_Usage --- query_image_sample_count :: proc(img: Image) -> c.int --- // separate resource allocation and initialization (for async setup) alloc_buffer :: proc() -> Buffer --- @@ -2087,6 +2193,7 @@ Range :: struct { INVALID_ID :: 0 NUM_INFLIGHT_FRAMES :: 2 MAX_COLOR_ATTACHMENTS :: 4 +MAX_STORAGE_ATTACHMENTS :: 4 MAX_UNIFORMBLOCK_MEMBERS :: 16 MAX_VERTEX_ATTRIBUTES :: 16 MAX_MIPMAPS :: 16 @@ -2249,6 +2356,8 @@ Pixelformat_Info :: struct { msaa : bool, depth : bool, compressed : bool, + read : bool, + write : bool, bytes_per_pixel : c.int, } @@ -2260,6 +2369,7 @@ Features :: struct { mrt_independent_write_mask : bool, compute : bool, msaa_image_bindings : bool, + separate_buffer_types : bool, } // Runtime information about resource limits, returned by sg_query_limit() @@ -2300,64 +2410,6 @@ Resource_State :: enum i32 { INVALID, } -/* - sg_usage - - A resource usage hint describing the update strategy of - buffers and images. This is used in the sg_buffer_desc.usage - and sg_image_desc.usage members when creating buffers - and images: - - SG_USAGE_IMMUTABLE: the resource will never be updated with - new (CPU-side) data, instead the content of the - resource must be provided on creation - SG_USAGE_DYNAMIC: the resource will be updated infrequently - with new data (this could range from "once - after creation", to "quite often but not - every frame") - SG_USAGE_STREAM: the resource will be updated each frame - with new content - - The rendering backends use this hint to prevent that the - CPU needs to wait for the GPU when attempting to update - a resource that might be currently accessed by the GPU. - - Resource content is updated with the functions sg_update_buffer() or - sg_append_buffer() for buffer objects, and sg_update_image() for image - objects. For the sg_update_*() functions, only one update is allowed per - frame and resource object, while sg_append_buffer() can be called - multiple times per frame on the same buffer. The application must update - all data required for rendering (this means that the update data can be - smaller than the resource size, if only a part of the overall resource - size is used for rendering, you only need to make sure that the data that - *is* used is valid). - - The default usage is SG_USAGE_IMMUTABLE. -*/ -Usage :: enum i32 { - DEFAULT, - IMMUTABLE, - DYNAMIC, - STREAM, -} - -/* - sg_buffer_type - - Indicates whether a buffer will be bound as vertex-, - index- or storage-buffer. - - Used in the sg_buffer_desc.type member when creating a buffer. - - The default value is SG_BUFFERTYPE_VERTEXBUFFER. -*/ -Buffer_Type :: enum i32 { - DEFAULT, - VERTEXBUFFER, - INDEXBUFFER, - STORAGEBUFFER, -} - /* sg_index_type @@ -3163,19 +3215,45 @@ Bindings :: struct { _ : u32, } +/* + sg_buffer_usage + + Describes how a buffer object is going to be used: + + .vertex_buffer (default: true) + the buffer will bound as vertex buffer via sg_bindings.vertex_buffers[] + .index_buffer (default: false) + the buffer will bound as index buffer via sg_bindings.index_buffer + .storage_buffer (default: false) + the buffer will bound as storage buffer via sg_bindings.storage_buffers[] + .immutable (default: true) + the buffer content will never be updated from the CPU side (but + may be written to by a compute shader) + .dynamic_update (default: false) + the buffer content will be infrequently updated from the CPU side + .stream_upate (default: false) + the buffer content will be updated each frame from the CPU side +*/ +Buffer_Usage :: struct { + vertex_buffer : bool, + index_buffer : bool, + storage_buffer : bool, + immutable : bool, + dynamic_update : bool, + stream_update : bool, +} + /* sg_buffer_desc - Creation parameters for sg_buffer objects, used in the - sg_make_buffer() call. + Creation parameters for sg_buffer objects, used in the sg_make_buffer() call. The default configuration is: .size: 0 (*must* be >0 for buffers without data) - .type: SG_BUFFERTYPE_VERTEXBUFFER - .usage: SG_USAGE_IMMUTABLE - .data.ptr 0 (*must* be valid for immutable buffers) - .data.size 0 (*must* be > 0 for immutable buffers) + .usage .vertex_buffer = true, .immutable = true + .data.ptr 0 (*must* be valid for immutable buffers without storage buffer usage) + .data.size 0 (*must* be > 0 for immutable buffers without storage buffer usage) .label 0 (optional string label) For immutable buffers which are initialized with initial data, @@ -3185,14 +3263,18 @@ Bindings :: struct { For immutable or mutable buffers without initial data, keep the .data item zero-initialized, and set the buffer size in the .size item instead. - NOTE: Immutable buffers without initial data are guaranteed to be - zero-initialized. For mutable (dynamic or streaming) buffers, the - initial content is undefined. - You can also set both size values, but currently both size values must be identical (this may change in the future when the dynamic resource management may become more flexible). + NOTE: Immutable buffers without storage-buffer-usage *must* be created + with initial content, this restriction doesn't apply to storage buffer usage, + because storage buffers may also get their initial content by running + a compute shader on them. + + NOTE: Buffers without initial data will have undefined content, e.g. + do *not* expect the buffer to be zero-initialized! + ADVANCED TOPIC: Injecting native 3D-API buffers: The following struct members allow to inject your own GL, Metal @@ -3203,12 +3285,12 @@ Bindings :: struct { .d3d11_buffer You must still provide all other struct items except the .data item, and - these must match the creation parameters of the native buffers you - provide. For SG_USAGE_IMMUTABLE, only provide a single native 3D-API - buffer, otherwise you need to provide SG_NUM_INFLIGHT_FRAMES buffers + these must match the creation parameters of the native buffers you provide. + For sg_buffer_desc.usage.immutable buffers, only provide a single native + 3D-API buffer, otherwise you need to provide SG_NUM_INFLIGHT_FRAMES buffers (only for GL and Metal, not D3D11). Providing multiple buffers for GL and - Metal is necessary because sokol_gfx will rotate through them when - calling sg_update_buffer() to prevent lock-stalls. + Metal is necessary because sokol_gfx will rotate through them when calling + sg_update_buffer() to prevent lock-stalls. Note that it is expected that immutable injected buffer have already been initialized with content, and the .content member must be 0! @@ -3219,8 +3301,7 @@ Bindings :: struct { Buffer_Desc :: struct { _ : u32, size : c.size_t, - type : Buffer_Type, - usage : Usage, + usage : Buffer_Usage, data : Range, label : cstring, gl_buffers : [2]u32, @@ -3230,6 +3311,35 @@ Buffer_Desc :: struct { _ : u32, } +/* + sg_image_usage + + Describes how the image object is going to be used: + + .render_attachment (default: false) + the image object is used as color-, resolve- or depth-stencil- + attachment in a render pass + .storage_attachment (default: false) + the image object is used as storage-attachment in a + compute pass (to be written to by compute shaders) + .immutable (default: true) + the image content cannot be updated from the CPU side + (but may be updated by the GPU in a render- or compute-pass) + .dynamic_update (default: false) + the image content is updated infrequently by the CPU + .stream_update (default: false) + the image content is updated each frame by the CPU via + + Note that the usage as texture binding is implicit and always allowed. +*/ +Image_Usage :: struct { + render_attachment : bool, + storage_attachment : bool, + immutable : bool, + dynamic_update : bool, + stream_update : bool, +} + /* sg_image_data @@ -3248,15 +3358,14 @@ Image_Data :: struct { The default configuration is: - .type: SG_IMAGETYPE_2D - .render_target: false + .type SG_IMAGETYPE_2D + .usage .immutable = true .width 0 (must be set to >0) .height 0 (must be set to >0) .num_slices 1 (3D textures: depth; array textures: number of layers) - .num_mipmaps: 1 - .usage: SG_USAGE_IMMUTABLE - .pixel_format: SG_PIXELFORMAT_RGBA8 for textures, or sg_desc.environment.defaults.color_format for render targets - .sample_count: 1 for textures, or sg_desc.environment.defaults.sample_count for render targets + .num_mipmaps 1 + .pixel_format SG_PIXELFORMAT_RGBA8 for textures, or sg_desc.environment.defaults.color_format for render targets + .sample_count 1 for textures, or sg_desc.environment.defaults.sample_count for render targets .data an sg_image_data struct to define the initial content .label 0 (optional string label for trace hooks) @@ -3271,9 +3380,13 @@ Image_Data :: struct { NOTE: - Images with usage SG_USAGE_IMMUTABLE must be fully initialized by + Regular (non-attachment) images with usage.immutable must be fully initialized by providing a valid .data member which points to initialization data. + Images with usage.render_attachment or usage.storage_attachment must + *not* be created with initial content. Be aware that the initial + content of render- and storage-attachment images is undefined. + ADVANCED TOPIC: Injecting native 3D-API textures: The following struct members allow to inject your own GL, Metal or D3D11 @@ -3300,12 +3413,11 @@ Image_Data :: struct { Image_Desc :: struct { _ : u32, type : Image_Type, - render_target : bool, + usage : Image_Usage, width : c.int, height : c.int, num_slices : c.int, num_mipmaps : c.int, - usage : Usage, pixel_format : Pixel_Format, sample_count : c.int, data : Image_Data, @@ -3366,7 +3478,7 @@ Sampler_Desc :: struct { reflection information to sokol-gfx. If you use sokol-shdc you can ignore the following information since - the sg_shader_desc struct will be code generated. + the sg_shader_desc struct will be code-generated. Otherwise you need to provide the following information to the sg_make_shader() call: @@ -3401,7 +3513,7 @@ Sampler_Desc :: struct { - WGSL: `@workgroup_size(x, y, z)` ...but in Metal the workgroup size is declared on the CPU side - - reflection information for each uniform block used by the shader: + - reflection information for each uniform block binding used by the shader: - the shader stage the uniform block appears in (SG_SHADERSTAGE_*) - the size in bytes of the uniform block - backend-specific bindslots: @@ -3415,14 +3527,14 @@ Sampler_Desc :: struct { - if the member is an array, the array count - the member name - - reflection information for each texture used by the shader: + - reflection information for each texture binding used by the shader: - the shader stage the texture appears in (SG_SHADERSTAGE_*) - the image type (SG_IMAGETYPE_*) - the image-sample type (SG_IMAGESAMPLETYPE_*) - whether the texture is multisampled - backend specific bindslots: - HLSL: the texture register `register(t0..23)` - - MSL: the texture attribute `[[texture(0..15)]]` + - MSL: the texture attribute `[[texture(0..19)]]` - WGSL: the binding in `@group(1) @binding(0..127)` - reflection information for each sampler used by the shader: @@ -3433,18 +3545,31 @@ Sampler_Desc :: struct { - MSL: the sampler attribute `[[sampler(0..15)]]` - WGSL: the binding in `@group(0) @binding(0..127)` - - reflection information for each storage buffer used by the shader: + - reflection information for each storage buffer binding used by the shader: - the shader stage the storage buffer appears in (SG_SHADERSTAGE_*) - - whether the storage buffer is readonly (currently this must - always be true) + - whether the storage buffer is readonly - backend specific bindslots: - HLSL: - for readonly storage buffer bindings: `register(t0..23)` - - for read/write storage buffer bindings: `register(u0..7)` + - for read/write storage buffer bindings: `register(u0..11)` - MSL: the buffer attribute `[[buffer(8..15)]]` - WGSL: the binding in `@group(1) @binding(0..127)` - GL: the binding in `layout(binding=0..7)` + - reflection information for each storage image binding used by the shader: + - the shader stage (*must* be SG_SHADERSTAGE_COMPUTE) + - whether the storage image is writeonly or readwrite (for readonly + access use a regular texture binding instead) + - the image type expected by the shader (SG_IMAGETYPE_*) + - the access pixel format expected by the shader (SG_PIXELFORMAT_*), + note that only a subset of pixel formats is allowed for storage image + bindings + - backend specific bindslots: + - HLSL: the UAV register `register(u0..u11)` + - MSL: the texture attribute `[[texture(0..19)]]` + - WGSL: the binding in `@group(2) @binding(0..3)` + - GLSL: the binding in `layout(binding=0..3, [access_format])` + - reflection information for each combined image-sampler object used by the shader: - the shader stage (SG_SHADERSTAGE_*) @@ -3474,9 +3599,9 @@ Sampler_Desc :: struct { For all GL backends, shader source-code must be provided. For D3D11 and Metal, either shader source-code or byte-code can be provided. - NOTE that the uniform block, image, sampler and storage_buffer arrays - can have gaps. This allows to use the same sg_bindings struct for - different related shader variants. + NOTE that the uniform block, image, sampler, storage_buffer and + storage_image arrays may have gaps. This allows to use the same sg_bindings + struct for different related shader variants. For D3D11, if source code is provided, the d3dcompiler_47.dll will be loaded on demand. If this fails, shader creation will fail. When compiling HLSL @@ -3556,6 +3681,17 @@ Shader_Storage_Buffer :: struct { glsl_binding_n : u8, } +Shader_Storage_Image :: struct { + stage : Shader_Stage, + image_type : Image_Type, + access_format : Pixel_Format, + writeonly : bool, + hlsl_register_u_n : u8, + msl_texture_n : u8, + wgsl_group2_binding_n : u8, + glsl_binding_n : u8, +} + Shader_Image_Sampler_Pair :: struct { stage : Shader_Stage, image_slot : u8, @@ -3580,6 +3716,7 @@ Shader_Desc :: struct { images : [16]Shader_Image, samplers : [16]Shader_Sampler, image_sampler_pairs : [16]Shader_Image_Sampler_Pair, + storage_images : [4]Shader_Storage_Image, mtl_threads_per_threadgroup : Mtl_Shader_Threads_Per_Threadgroup, label : cstring, _ : u32, @@ -3613,6 +3750,10 @@ Shader_Desc :: struct { Please note that ALL vertex attribute offsets must be 0 in order for the automatic offset computation to kick in. + Note that if you use vertex-pulling from storage buffers instead of + fixed-function vertex input you can simply omit the entire nested .layout + struct. + The default configuration is as follows: .compute: false (must be set to true for a compute pipeline) @@ -3748,11 +3889,25 @@ Pipeline_Desc :: struct { Creation parameters for an sg_attachments object, used as argument to the sg_make_attachments() function. - An attachments object bundles 0..4 color attachments, 0..4 msaa-resolve - attachments, and none or one depth-stencil attachmente for use - in a render pass. At least one color attachment or one depth-stencil - attachment must be provided (no color attachment and a depth-stencil - attachment is useful for a depth-only render pass). + An attachments object bundles either bundles 'render attachments' for + a render pass, or 'storage attachments' for a compute pass which writes + to storage images. + + Render attachments are: + + - 0..4 color attachment images + - 0..4 msaa-resolve attachment images + - 0 or one depth-stencil attachment image + + Note that all types of render attachment images must be created with + `sg_image_desc.usage.render_attachment = true`. At least one color-attachment + or depth-stencil-attachment image must be provided in a render pass + (only providing a depth-stencil-attachment is useful for depth-only passes). + + Alternatively provide 1..4 storage attachment images which must be created + with `sg_image_desc.usage.storage_attachment = true`. + + An sg_attachments object cannot have both render- and storage-attachments. Each attachment definition consists of an image object, and two additional indices describing which subimage the pass will render into: one mipmap index, and if the image @@ -3784,6 +3939,7 @@ Attachments_Desc :: struct { colors : [4]Attachment_Desc, resolves : [4]Attachment_Desc, depth_stencil : Attachment_Desc, + storages : [4]Attachment_Desc, label : cstring, _ : u32, } @@ -4022,6 +4178,7 @@ Log_Item :: enum i32 { GL_3D_TEXTURES_NOT_SUPPORTED, GL_ARRAY_TEXTURES_NOT_SUPPORTED, GL_STORAGEBUFFER_GLSL_BINDING_OUT_OF_RANGE, + GL_STORAGEIMAGE_GLSL_BINDING_OUT_OF_RANGE, GL_SHADER_COMPILATION_FAILED, GL_SHADER_LINKING_FAILED, GL_VERTEX_ATTRIBUTE_NOT_FOUND_IN_SHADER, @@ -4051,6 +4208,7 @@ Log_Item :: enum i32 { D3D11_STORAGEBUFFER_HLSL_REGISTER_U_OUT_OF_RANGE, D3D11_IMAGE_HLSL_REGISTER_T_OUT_OF_RANGE, D3D11_SAMPLER_HLSL_REGISTER_S_OUT_OF_RANGE, + D3D11_STORAGEIMAGE_HLSL_REGISTER_U_OUT_OF_RANGE, D3D11_LOAD_D3DCOMPILER_47_DLL_FAILED, D3D11_SHADER_COMPILATION_FAILED, D3D11_SHADER_COMPILATION_OUTPUT, @@ -4061,6 +4219,7 @@ Log_Item :: enum i32 { D3D11_CREATE_BLEND_STATE_FAILED, D3D11_CREATE_RTV_FAILED, D3D11_CREATE_DSV_FAILED, + D3D11_CREATE_UAV_FAILED, D3D11_MAP_FOR_UPDATE_BUFFER_FAILED, D3D11_MAP_FOR_APPEND_BUFFER_FAILED, D3D11_MAP_FOR_UPDATE_IMAGE_FAILED, @@ -4074,6 +4233,7 @@ Log_Item :: enum i32 { METAL_SHADER_ENTRY_NOT_FOUND, METAL_UNIFORMBLOCK_MSL_BUFFER_SLOT_OUT_OF_RANGE, METAL_STORAGEBUFFER_MSL_BUFFER_SLOT_OUT_OF_RANGE, + METAL_STORAGEIMAGE_MSL_TEXTURE_SLOT_OUT_OF_RANGE, METAL_IMAGE_MSL_TEXTURE_SLOT_OUT_OF_RANGE, METAL_SAMPLER_MSL_SAMPLER_SLOT_OUT_OF_RANGE, METAL_CREATE_CPS_FAILED, @@ -4095,6 +4255,7 @@ Log_Item :: enum i32 { WGPU_STORAGEBUFFER_WGSL_GROUP1_BINDING_OUT_OF_RANGE, WGPU_IMAGE_WGSL_GROUP1_BINDING_OUT_OF_RANGE, WGPU_SAMPLER_WGSL_GROUP1_BINDING_OUT_OF_RANGE, + WGPU_STORAGEIMAGE_WGSL_GROUP2_BINDING_OUT_OF_RANGE, WGPU_CREATE_PIPELINE_LAYOUT_FAILED, WGPU_CREATE_RENDER_PIPELINE_FAILED, WGPU_CREATE_COMPUTE_PIPELINE_FAILED, @@ -4136,27 +4297,35 @@ Log_Item :: enum i32 { APPLY_BINDINGS_STORAGE_BUFFER_TRACKER_EXHAUSTED, DRAW_WITHOUT_BINDINGS, VALIDATE_BUFFERDESC_CANARY, + VALIDATE_BUFFERDESC_IMMUTABLE_DYNAMIC_STREAM, + VALIDATE_BUFFERDESC_SEPARATE_BUFFER_TYPES, VALIDATE_BUFFERDESC_EXPECT_NONZERO_SIZE, VALIDATE_BUFFERDESC_EXPECT_MATCHING_DATA_SIZE, VALIDATE_BUFFERDESC_EXPECT_ZERO_DATA_SIZE, VALIDATE_BUFFERDESC_EXPECT_NO_DATA, + VALIDATE_BUFFERDESC_EXPECT_DATA, VALIDATE_BUFFERDESC_STORAGEBUFFER_SUPPORTED, VALIDATE_BUFFERDESC_STORAGEBUFFER_SIZE_MULTIPLE_4, VALIDATE_IMAGEDATA_NODATA, VALIDATE_IMAGEDATA_DATA_SIZE, VALIDATE_IMAGEDESC_CANARY, + VALIDATE_IMAGEDESC_IMMUTABLE_DYNAMIC_STREAM, + VALIDATE_IMAGEDESC_RENDER_VS_STORAGE_ATTACHMENT, VALIDATE_IMAGEDESC_WIDTH, VALIDATE_IMAGEDESC_HEIGHT, - VALIDATE_IMAGEDESC_RT_PIXELFORMAT, VALIDATE_IMAGEDESC_NONRT_PIXELFORMAT, - VALIDATE_IMAGEDESC_MSAA_BUT_NO_RT, - VALIDATE_IMAGEDESC_NO_MSAA_RT_SUPPORT, - VALIDATE_IMAGEDESC_MSAA_NUM_MIPMAPS, - VALIDATE_IMAGEDESC_MSAA_3D_IMAGE, - VALIDATE_IMAGEDESC_MSAA_CUBE_IMAGE, + VALIDATE_IMAGEDESC_MSAA_BUT_NO_ATTACHMENT, VALIDATE_IMAGEDESC_DEPTH_3D_IMAGE, - VALIDATE_IMAGEDESC_RT_IMMUTABLE, - VALIDATE_IMAGEDESC_RT_NO_DATA, + VALIDATE_IMAGEDESC_ATTACHMENT_EXPECT_IMMUTABLE, + VALIDATE_IMAGEDESC_ATTACHMENT_EXPECT_NO_DATA, + VALIDATE_IMAGEDESC_RENDERATTACHMENT_NO_MSAA_SUPPORT, + VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_NUM_MIPMAPS, + VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_3D_IMAGE, + VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_CUBE_IMAGE, + VALIDATE_IMAGEDESC_RENDERATTACHMENT_MSAA_ARRAY_IMAGE, + VALIDATE_IMAGEDESC_RENDERATTACHMENT_PIXELFORMAT, + VALIDATE_IMAGEDESC_STORAGEATTACHMENT_PIXELFORMAT, + VALIDATE_IMAGEDESC_STORAGEATTACHMENT_EXPECT_NO_MSAA, VALIDATE_IMAGEDESC_INJECTED_NO_DATA, VALIDATE_IMAGEDESC_DYNAMIC_NO_DATA, VALIDATE_IMAGEDESC_COMPRESSED_IMMUTABLE, @@ -4195,6 +4364,15 @@ Log_Item :: enum i32 { VALIDATE_SHADERDESC_STORAGEBUFFER_GLSL_BINDING_COLLISION, VALIDATE_SHADERDESC_STORAGEBUFFER_WGSL_GROUP1_BINDING_OUT_OF_RANGE, VALIDATE_SHADERDESC_STORAGEBUFFER_WGSL_GROUP1_BINDING_COLLISION, + VALIDATE_SHADERDESC_STORAGEIMAGE_EXPECT_COMPUTE_STAGE, + VALIDATE_SHADERDESC_STORAGEIMAGE_METAL_TEXTURE_SLOT_OUT_OF_RANGE, + VALIDATE_SHADERDESC_STORAGEIMAGE_METAL_TEXTURE_SLOT_COLLISION, + VALIDATE_SHADERDESC_STORAGEIMAGE_HLSL_REGISTER_U_OUT_OF_RANGE, + VALIDATE_SHADERDESC_STORAGEIMAGE_HLSL_REGISTER_U_COLLISION, + VALIDATE_SHADERDESC_STORAGEIMAGE_GLSL_BINDING_OUT_OF_RANGE, + VALIDATE_SHADERDESC_STORAGEIMAGE_GLSL_BINDING_COLLISION, + VALIDATE_SHADERDESC_STORAGEIMAGE_WGSL_GROUP2_BINDING_OUT_OF_RANGE, + VALIDATE_SHADERDESC_STORAGEIMAGE_WGSL_GROUP2_BINDING_COLLISION, VALIDATE_SHADERDESC_IMAGE_METAL_TEXTURE_SLOT_OUT_OF_RANGE, VALIDATE_SHADERDESC_IMAGE_METAL_TEXTURE_SLOT_COLLISION, VALIDATE_SHADERDESC_IMAGE_HLSL_REGISTER_T_OUT_OF_RANGE, @@ -4230,14 +4408,13 @@ Log_Item :: enum i32 { VALIDATE_ATTACHMENTSDESC_CANARY, VALIDATE_ATTACHMENTSDESC_NO_ATTACHMENTS, VALIDATE_ATTACHMENTSDESC_NO_CONT_COLOR_ATTS, - VALIDATE_ATTACHMENTSDESC_IMAGE, - VALIDATE_ATTACHMENTSDESC_MIPLEVEL, - VALIDATE_ATTACHMENTSDESC_FACE, - VALIDATE_ATTACHMENTSDESC_LAYER, - VALIDATE_ATTACHMENTSDESC_SLICE, - VALIDATE_ATTACHMENTSDESC_IMAGE_NO_RT, + VALIDATE_ATTACHMENTSDESC_COLOR_IMAGE, + VALIDATE_ATTACHMENTSDESC_COLOR_MIPLEVEL, + VALIDATE_ATTACHMENTSDESC_COLOR_FACE, + VALIDATE_ATTACHMENTSDESC_COLOR_LAYER, + VALIDATE_ATTACHMENTSDESC_COLOR_SLICE, + VALIDATE_ATTACHMENTSDESC_COLOR_IMAGE_NO_RENDERATTACHMENT, VALIDATE_ATTACHMENTSDESC_COLOR_INV_PIXELFORMAT, - VALIDATE_ATTACHMENTSDESC_DEPTH_INV_PIXELFORMAT, VALIDATE_ATTACHMENTSDESC_IMAGE_SIZES, VALIDATE_ATTACHMENTSDESC_IMAGE_SAMPLE_COUNTS, VALIDATE_ATTACHMENTSDESC_RESOLVE_COLOR_IMAGE_MSAA, @@ -4250,21 +4427,32 @@ Log_Item :: enum i32 { VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_NO_RT, VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_SIZES, VALIDATE_ATTACHMENTSDESC_RESOLVE_IMAGE_FORMAT, + VALIDATE_ATTACHMENTSDESC_DEPTH_INV_PIXELFORMAT, VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE, VALIDATE_ATTACHMENTSDESC_DEPTH_MIPLEVEL, VALIDATE_ATTACHMENTSDESC_DEPTH_FACE, VALIDATE_ATTACHMENTSDESC_DEPTH_LAYER, VALIDATE_ATTACHMENTSDESC_DEPTH_SLICE, - VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_NO_RT, + VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_NO_RENDERATTACHMENT, VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_SIZES, VALIDATE_ATTACHMENTSDESC_DEPTH_IMAGE_SAMPLE_COUNT, + VALIDATE_ATTACHMENTSDESC_STORAGE_IMAGE, + VALIDATE_ATTACHMENTSDESC_STORAGE_MIPLEVEL, + VALIDATE_ATTACHMENTSDESC_STORAGE_FACE, + VALIDATE_ATTACHMENTSDESC_STORAGE_LAYER, + VALIDATE_ATTACHMENTSDESC_STORAGE_SLICE, + VALIDATE_ATTACHMENTSDESC_STORAGE_IMAGE_NO_STORAGEATTACHMENT, + VALIDATE_ATTACHMENTSDESC_STORAGE_INV_PIXELFORMAT, + VALIDATE_ATTACHMENTSDESC_RENDER_VS_STORAGE_ATTACHMENTS, VALIDATE_BEGINPASS_CANARY, - VALIDATE_BEGINPASS_EXPECT_NO_ATTACHMENTS, VALIDATE_BEGINPASS_ATTACHMENTS_EXISTS, VALIDATE_BEGINPASS_ATTACHMENTS_VALID, + VALIDATE_BEGINPASS_COMPUTEPASS_STORAGE_ATTACHMENTS_ONLY, + VALIDATE_BEGINPASS_RENDERPASS_RENDER_ATTACHMENTS_ONLY, VALIDATE_BEGINPASS_COLOR_ATTACHMENT_IMAGE, VALIDATE_BEGINPASS_RESOLVE_ATTACHMENT_IMAGE, VALIDATE_BEGINPASS_DEPTHSTENCIL_ATTACHMENT_IMAGE, + VALIDATE_BEGINPASS_STORAGE_ATTACHMENT_IMAGE, VALIDATE_BEGINPASS_SWAPCHAIN_EXPECT_WIDTH, VALIDATE_BEGINPASS_SWAPCHAIN_EXPECT_WIDTH_NOTSET, VALIDATE_BEGINPASS_SWAPCHAIN_EXPECT_HEIGHT, @@ -4309,6 +4497,11 @@ Log_Item :: enum i32 { VALIDATE_APIP_COLOR_FORMAT, VALIDATE_APIP_DEPTH_FORMAT, VALIDATE_APIP_SAMPLE_COUNT, + VALIDATE_APIP_EXPECTED_STORAGE_ATTACHMENT_IMAGE, + VALIDATE_APIP_STORAGE_ATTACHMENT_IMAGE_EXISTS, + VALIDATE_APIP_STORAGE_ATTACHMENT_IMAGE_VALID, + VALIDATE_APIP_STORAGE_ATTACHMENT_PIXELFORMAT, + VALIDATE_APIP_STORAGE_ATTACHMENT_IMAGE_TYPE, VALIDATE_ABND_PASS_EXPECTED, VALIDATE_ABND_EMPTY_BINDINGS, VALIDATE_ABND_PIPELINE, @@ -4341,6 +4534,10 @@ Log_Item :: enum i32 { VALIDATE_ABND_STORAGEBUFFER_EXISTS, VALIDATE_ABND_STORAGEBUFFER_BINDING_BUFFERTYPE, VALIDATE_ABND_STORAGEBUFFER_READWRITE_IMMUTABLE, + VALIDATE_ABND_IMAGE_BINDING_VS_DEPTHSTENCIL_ATTACHMENT, + VALIDATE_ABND_IMAGE_BINDING_VS_COLOR_ATTACHMENT, + VALIDATE_ABND_IMAGE_BINDING_VS_RESOLVE_ATTACHMENT, + VALIDATE_ABND_IMAGE_BINDING_VS_STORAGE_ATTACHMENT, VALIDATE_AU_PASS_EXPECTED, VALIDATE_AU_NO_PIPELINE, VALIDATE_AU_NO_UNIFORMBLOCK_AT_SLOT, diff --git a/thirdparty/sokol/gfx/sokol_gfx_windows_x64_d3d11_debug.lib b/thirdparty/sokol/gfx/sokol_gfx_windows_x64_d3d11_debug.lib index 41458968c95a1ef7a019d461a5c641d04c684048..f10b72b28bc2730cf020b5e3468509d4b17cbd62 100644 GIT binary patch literal 1147198 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

`Av$wJ-Hv@~OK0}OLv-BIHe~jE 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

aPu?u%8BdA44a<|qYYt9Eo>GPOaJO|d9wOh$1P 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 diff --git a/thirdparty/sokol/gfx/sokol_gfx_windows_x64_d3d11_release.lib b/thirdparty/sokol/gfx/sokol_gfx_windows_x64_d3d11_release.lib index d844ac3c9e7ed92e5ece0ec610a4eebba7a0e018..44b4da0919c6999506015ddc6ac78304c9c025ea 100644 GIT binary patch literal 230832 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 d}ErK7Y65 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 diff --git a/thirdparty/sokol/gfx/sokol_gfx_windows_x64_gl_debug.lib b/thirdparty/sokol/gfx/sokol_gfx_windows_x64_gl_debug.lib index 526ebbb6dd25af7412b8507933061f720ffe61a9..8f711962a7cb5334d20b4234696b042100345dd0 100644 GIT binary patch literal 821626 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 OGdZ^?eM2f)dv*nT}Py@lnp( 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 rxCrGIYhJU8ga-F=W3?eGhaYa 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

0(Ap{FrZ!_{14QJ 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

3Z;hH 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⪙4o9J2B1c&(M!Uhvu&ug&+`cV0W=wUVzz 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

Xh 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