From a3545af664ad9a9300412067f5fb597b6d43f48a Mon Sep 17 00:00:00 2001 From: MajorPainTheCactus Date: Sun, 15 Feb 2026 08:51:36 +0000 Subject: [PATCH 1/3] WIP: Vulkan/D3D12 ribbon shader and mipmap fixes Save point for in-progress gfx driver changes including Vulkan ribbon shader updates and D3D12 fixes. --- gfx/common/vulkan_common.c | 3 + gfx/drivers/d3d12.c | 5 +- .../d3d_shaders/ribbon_simple_sm4.hlsl.h | 3 +- gfx/drivers/d3d_shaders/ribbon_sm4.hlsl.h | 3 +- gfx/drivers/vulkan.c | 26 +- .../vulkan_shaders/pipeline_ribbon.frag | 3 +- .../vulkan_shaders/pipeline_ribbon.frag.inc | 148 ++-- .../vulkan_shaders/pipeline_ribbon.vert | 1 + .../vulkan_shaders/pipeline_ribbon.vert.inc | 641 +++++++++--------- .../pipeline_ribbon_simple.frag | 9 +- .../pipeline_ribbon_simple.frag.inc | 56 +- .../pipeline_ribbon_simple.vert | 1 + .../pipeline_ribbon_simple.vert.inc | 479 ++++++------- 13 files changed, 720 insertions(+), 658 deletions(-) diff --git a/gfx/common/vulkan_common.c b/gfx/common/vulkan_common.c index 14d16aabb790..71f552cb95b4 100644 --- a/gfx/common/vulkan_common.c +++ b/gfx/common/vulkan_common.c @@ -911,6 +911,9 @@ static const char *vulkan_optional_instance_extensions[] = { #ifdef __APPLE__ VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME, #endif +#ifdef _WIN32 + "VK_KHR_get_surface_capabilities2", +#endif #ifdef VULKAN_HDR_SWAPCHAIN VULKAN_COLORSPACE_EXTENSION_NAME #endif diff --git a/gfx/drivers/d3d12.c b/gfx/drivers/d3d12.c index d12377254757..f522a6dae743 100644 --- a/gfx/drivers/d3d12.c +++ b/gfx/drivers/d3d12.c @@ -247,6 +247,7 @@ typedef struct ALIGN(16) float height; } OutputSize; float time; + float alpha; } d3d12_uniform_t; typedef struct @@ -1199,7 +1200,8 @@ static void gfx_display_d3d12_draw_pipeline(gfx_display_ctx_draw_t *draw, cmd->lpVtbl->IASetPrimitiveTopology(cmd, D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); - d3d12->ubo_values.time += 0.01f; + d3d12->ubo_values.time += 0.01f; + d3d12->ubo_values.alpha = draw->color ? draw->color[3] : 1.0f; { D3D12_RANGE read_range; @@ -3528,6 +3530,7 @@ static void *d3d12_gfx_init(const video_info_t* video, d3d12->ubo_values.mvp = d3d12->mvp_no_rot; d3d12->ubo_values.OutputSize.width = d3d12->chain.viewport.Width; d3d12->ubo_values.OutputSize.height = d3d12->chain.viewport.Height; + d3d12->ubo_values.alpha = 1.0f; { math_matrix_4x4* mvp; diff --git a/gfx/drivers/d3d_shaders/ribbon_simple_sm4.hlsl.h b/gfx/drivers/d3d_shaders/ribbon_simple_sm4.hlsl.h index fe5347f82e34..08fb24c51e4b 100644 --- a/gfx/drivers/d3d_shaders/ribbon_simple_sm4.hlsl.h +++ b/gfx/drivers/d3d_shaders/ribbon_simple_sm4.hlsl.h @@ -7,6 +7,7 @@ SRC( float4x4 modelViewProj; float2 Outputsize; float time; + float alpha; }; uniform UBO global; @@ -46,6 +47,6 @@ SRC( float4 PSMain() : SV_TARGET { - return float4(0.05, 0.05, 0.05, 1.0); + return float4(0.05, 0.05, 0.05, global.alpha); }; ) diff --git a/gfx/drivers/d3d_shaders/ribbon_sm4.hlsl.h b/gfx/drivers/d3d_shaders/ribbon_sm4.hlsl.h index e0cbc223de6d..45de039515f3 100644 --- a/gfx/drivers/d3d_shaders/ribbon_sm4.hlsl.h +++ b/gfx/drivers/d3d_shaders/ribbon_sm4.hlsl.h @@ -13,6 +13,7 @@ SRC( float4x4 modelViewProj; float2 Outputsize; float time; + float alpha; }; uniform UBO global; @@ -70,7 +71,7 @@ SRC( float3 normal = normalize(cross(x, y)); float c = 1.0 - dot(normal, up); c = (1.0 - cos(c * c)) / 13.0; - return float4(c, c, c, 1.0); + return float4(c, c, c, global.alpha); // return float4(c, c, c, c); // return float4(1.0, 1.0, 1.0, c); // return float4(1.0, 0.0, 1.0, 1.0); diff --git a/gfx/drivers/vulkan.c b/gfx/drivers/vulkan.c index d27f7b491795..859a7f9e46b2 100644 --- a/gfx/drivers/vulkan.c +++ b/gfx/drivers/vulkan.c @@ -1352,14 +1352,18 @@ static void gfx_display_vk_draw_pipeline( default: case VIDEO_SHADER_MENU: case VIDEO_SHADER_MENU_2: - ca = &p_disp->dispca; - draw->coords = (struct video_coords*)&ca->coords; - draw->backend_data = ubo_scratch_data; - draw->backend_data_size = 2 * sizeof(float); - - /* Match UBO layout in shader. */ - memcpy(ubo_scratch_data, &t, sizeof(t)); - memcpy(ubo_scratch_data + sizeof(float), &yflip, sizeof(yflip)); + { + float alpha = draw->color ? draw->color[3] : 1.0f; + ca = &p_disp->dispca; + draw->coords = (struct video_coords*)&ca->coords; + draw->backend_data = ubo_scratch_data; + draw->backend_data_size = 3 * sizeof(float); + + /* Match UBO layout in shader. */ + memcpy(ubo_scratch_data, &t, sizeof(t)); + memcpy(ubo_scratch_data + sizeof(float), &yflip, sizeof(yflip)); + memcpy(ubo_scratch_data + 2 * sizeof(float), &alpha, sizeof(alpha)); + } break; /* Snow simple */ @@ -5050,6 +5054,12 @@ static bool vulkan_frame(void *data, const void *frame, else if (tex->image) vulkan_transition_texture(vk, vk->cmd, tex); + /* If the texture hasn't been uploaded yet (e.g. after + * reinit from HDR toggle with no cached frame), + * fall back to the default black texture. */ + if (tex->layout == VK_IMAGE_LAYOUT_UNDEFINED) + tex = &vk->default_texture; + input.image = tex->image; input.view = tex->view; input.layout = tex->layout; diff --git a/gfx/drivers/vulkan_shaders/pipeline_ribbon.frag b/gfx/drivers/vulkan_shaders/pipeline_ribbon.frag index d9d009ed2c30..9d4bd819e368 100644 --- a/gfx/drivers/vulkan_shaders/pipeline_ribbon.frag +++ b/gfx/drivers/vulkan_shaders/pipeline_ribbon.frag @@ -5,6 +5,7 @@ layout(std140, set = 0, binding = 0) uniform UBO { float time; float yflip; + float alpha; } constants; layout(location = 0) in vec3 vEC; @@ -19,5 +20,5 @@ void main() vec3 normal = normalize(cross(x, y)); float c = 1.0 - dot(normal, up); c = (1.0 - cos(c * c)) / 3.0; - FragColor = vec4(c, c, c, 1.0); + FragColor = vec4(c, c, c, constants.alpha); } diff --git a/gfx/drivers/vulkan_shaders/pipeline_ribbon.frag.inc b/gfx/drivers/vulkan_shaders/pipeline_ribbon.frag.inc index 4ec11809987d..f1b7f04cf65c 100644 --- a/gfx/drivers/vulkan_shaders/pipeline_ribbon.frag.inc +++ b/gfx/drivers/vulkan_shaders/pipeline_ribbon.frag.inc @@ -1,4 +1,4 @@ -{0x07230203,0x00010000,0x000d0007,0x00000036, +{0x07230203,0x00010000,0x000d000b,0x00000037, 0x00000000,0x00020011,0x00000001,0x0006000b, 0x00000001,0x4c534c47,0x6474732e,0x3035342e, 0x00000000,0x0003000e,0x00000000,0x00000001, @@ -16,76 +16,80 @@ 0x00030005,0x00000011,0x004f4255,0x00050006, 0x00000011,0x00000000,0x656d6974,0x00000000, 0x00050006,0x00000011,0x00000001,0x696c6679, -0x00000070,0x00050005,0x00000013,0x736e6f63, -0x746e6174,0x00000073,0x00040005,0x0000001b, -0x6d726f6e,0x00006c61,0x00030005,0x00000021, -0x00000063,0x00050005,0x00000031,0x67617246, -0x6f6c6f43,0x00000072,0x00040047,0x0000000b, -0x0000001e,0x00000000,0x00050048,0x00000011, +0x00000070,0x00050006,0x00000011,0x00000002, +0x68706c61,0x00000061,0x00050005,0x00000013, +0x736e6f63,0x746e6174,0x00000073,0x00040005, +0x0000001b,0x6d726f6e,0x00006c61,0x00030005, +0x00000021,0x00000063,0x00050005,0x00000031, +0x67617246,0x6f6c6f43,0x00000072,0x00040047, +0x0000000b,0x0000001e,0x00000000,0x00030047, +0x00000011,0x00000002,0x00050048,0x00000011, 0x00000000,0x00000023,0x00000000,0x00050048, 0x00000011,0x00000001,0x00000023,0x00000004, -0x00030047,0x00000011,0x00000002,0x00040047, -0x00000013,0x00000022,0x00000000,0x00040047, -0x00000013,0x00000021,0x00000000,0x00040047, -0x00000031,0x0000001e,0x00000000,0x00020013, -0x00000002,0x00030021,0x00000003,0x00000002, -0x00030016,0x00000006,0x00000020,0x00040017, -0x00000007,0x00000006,0x00000003,0x00040020, -0x00000008,0x00000007,0x00000007,0x00040020, -0x0000000a,0x00000001,0x00000007,0x0004003b, -0x0000000a,0x0000000b,0x00000001,0x0004001e, -0x00000011,0x00000006,0x00000006,0x00040020, -0x00000012,0x00000002,0x00000011,0x0004003b, -0x00000012,0x00000013,0x00000002,0x00040015, -0x00000014,0x00000020,0x00000001,0x0004002b, -0x00000014,0x00000015,0x00000001,0x00040020, -0x00000016,0x00000002,0x00000006,0x00040020, -0x00000020,0x00000007,0x00000006,0x0004002b, -0x00000006,0x00000022,0x3f800000,0x0004002b, -0x00000006,0x00000024,0x00000000,0x0006002c, -0x00000007,0x00000025,0x00000024,0x00000024, -0x00000022,0x0004002b,0x00000006,0x0000002d, -0x40400000,0x00040017,0x0000002f,0x00000006, -0x00000004,0x00040020,0x00000030,0x00000003, -0x0000002f,0x0004003b,0x00000030,0x00000031, -0x00000003,0x00050036,0x00000002,0x00000004, -0x00000000,0x00000003,0x000200f8,0x00000005, -0x0004003b,0x00000008,0x00000009,0x00000007, -0x0004003b,0x00000008,0x0000000e,0x00000007, -0x0004003b,0x00000008,0x0000001b,0x00000007, -0x0004003b,0x00000020,0x00000021,0x00000007, -0x0004003d,0x00000007,0x0000000c,0x0000000b, -0x000400cf,0x00000007,0x0000000d,0x0000000c, -0x0003003e,0x00000009,0x0000000d,0x0004003d, -0x00000007,0x0000000f,0x0000000b,0x000400d0, -0x00000007,0x00000010,0x0000000f,0x0003003e, -0x0000000e,0x00000010,0x00050041,0x00000016, -0x00000017,0x00000013,0x00000015,0x0004003d, -0x00000006,0x00000018,0x00000017,0x0004003d, -0x00000007,0x00000019,0x0000000e,0x0005008e, -0x00000007,0x0000001a,0x00000019,0x00000018, -0x0003003e,0x0000000e,0x0000001a,0x0004003d, -0x00000007,0x0000001c,0x00000009,0x0004003d, -0x00000007,0x0000001d,0x0000000e,0x0007000c, -0x00000007,0x0000001e,0x00000001,0x00000044, -0x0000001c,0x0000001d,0x0006000c,0x00000007, -0x0000001f,0x00000001,0x00000045,0x0000001e, -0x0003003e,0x0000001b,0x0000001f,0x0004003d, -0x00000007,0x00000023,0x0000001b,0x00050094, -0x00000006,0x00000026,0x00000023,0x00000025, -0x00050083,0x00000006,0x00000027,0x00000022, -0x00000026,0x0003003e,0x00000021,0x00000027, -0x0004003d,0x00000006,0x00000028,0x00000021, -0x0004003d,0x00000006,0x00000029,0x00000021, -0x00050085,0x00000006,0x0000002a,0x00000028, -0x00000029,0x0006000c,0x00000006,0x0000002b, -0x00000001,0x0000000e,0x0000002a,0x00050083, -0x00000006,0x0000002c,0x00000022,0x0000002b, -0x00050088,0x00000006,0x0000002e,0x0000002c, -0x0000002d,0x0003003e,0x00000021,0x0000002e, -0x0004003d,0x00000006,0x00000032,0x00000021, -0x0004003d,0x00000006,0x00000033,0x00000021, -0x0004003d,0x00000006,0x00000034,0x00000021, -0x00070050,0x0000002f,0x00000035,0x00000032, -0x00000033,0x00000034,0x00000022,0x0003003e, -0x00000031,0x00000035,0x000100fd,0x00010038} +0x00050048,0x00000011,0x00000002,0x00000023, +0x00000008,0x00040047,0x00000013,0x00000021, +0x00000000,0x00040047,0x00000013,0x00000022, +0x00000000,0x00040047,0x00000031,0x0000001e, +0x00000000,0x00020013,0x00000002,0x00030021, +0x00000003,0x00000002,0x00030016,0x00000006, +0x00000020,0x00040017,0x00000007,0x00000006, +0x00000003,0x00040020,0x00000008,0x00000007, +0x00000007,0x00040020,0x0000000a,0x00000001, +0x00000007,0x0004003b,0x0000000a,0x0000000b, +0x00000001,0x0005001e,0x00000011,0x00000006, +0x00000006,0x00000006,0x00040020,0x00000012, +0x00000002,0x00000011,0x0004003b,0x00000012, +0x00000013,0x00000002,0x00040015,0x00000014, +0x00000020,0x00000001,0x0004002b,0x00000014, +0x00000015,0x00000001,0x00040020,0x00000016, +0x00000002,0x00000006,0x00040020,0x00000020, +0x00000007,0x00000006,0x0004002b,0x00000006, +0x00000022,0x3f800000,0x0004002b,0x00000006, +0x00000024,0x00000000,0x0006002c,0x00000007, +0x00000025,0x00000024,0x00000024,0x00000022, +0x0004002b,0x00000006,0x0000002d,0x40400000, +0x00040017,0x0000002f,0x00000006,0x00000004, +0x00040020,0x00000030,0x00000003,0x0000002f, +0x0004003b,0x00000030,0x00000031,0x00000003, +0x0004002b,0x00000014,0x00000033,0x00000002, +0x00050036,0x00000002,0x00000004,0x00000000, +0x00000003,0x000200f8,0x00000005,0x0004003b, +0x00000008,0x00000009,0x00000007,0x0004003b, +0x00000008,0x0000000e,0x00000007,0x0004003b, +0x00000008,0x0000001b,0x00000007,0x0004003b, +0x00000020,0x00000021,0x00000007,0x0004003d, +0x00000007,0x0000000c,0x0000000b,0x000400cf, +0x00000007,0x0000000d,0x0000000c,0x0003003e, +0x00000009,0x0000000d,0x0004003d,0x00000007, +0x0000000f,0x0000000b,0x000400d0,0x00000007, +0x00000010,0x0000000f,0x0003003e,0x0000000e, +0x00000010,0x00050041,0x00000016,0x00000017, +0x00000013,0x00000015,0x0004003d,0x00000006, +0x00000018,0x00000017,0x0004003d,0x00000007, +0x00000019,0x0000000e,0x0005008e,0x00000007, +0x0000001a,0x00000019,0x00000018,0x0003003e, +0x0000000e,0x0000001a,0x0004003d,0x00000007, +0x0000001c,0x00000009,0x0004003d,0x00000007, +0x0000001d,0x0000000e,0x0007000c,0x00000007, +0x0000001e,0x00000001,0x00000044,0x0000001c, +0x0000001d,0x0006000c,0x00000007,0x0000001f, +0x00000001,0x00000045,0x0000001e,0x0003003e, +0x0000001b,0x0000001f,0x0004003d,0x00000007, +0x00000023,0x0000001b,0x00050094,0x00000006, +0x00000026,0x00000023,0x00000025,0x00050083, +0x00000006,0x00000027,0x00000022,0x00000026, +0x0003003e,0x00000021,0x00000027,0x0004003d, +0x00000006,0x00000028,0x00000021,0x0004003d, +0x00000006,0x00000029,0x00000021,0x00050085, +0x00000006,0x0000002a,0x00000028,0x00000029, +0x0006000c,0x00000006,0x0000002b,0x00000001, +0x0000000e,0x0000002a,0x00050083,0x00000006, +0x0000002c,0x00000022,0x0000002b,0x00050088, +0x00000006,0x0000002e,0x0000002c,0x0000002d, +0x0003003e,0x00000021,0x0000002e,0x0004003d, +0x00000006,0x00000032,0x00000021,0x00050041, +0x00000016,0x00000034,0x00000013,0x00000033, +0x0004003d,0x00000006,0x00000035,0x00000034, +0x00070050,0x0000002f,0x00000036,0x00000032, +0x00000032,0x00000032,0x00000035,0x0003003e, +0x00000031,0x00000036,0x000100fd,0x00010038} diff --git a/gfx/drivers/vulkan_shaders/pipeline_ribbon.vert b/gfx/drivers/vulkan_shaders/pipeline_ribbon.vert index 705c5e8be937..4521dc3349c1 100644 --- a/gfx/drivers/vulkan_shaders/pipeline_ribbon.vert +++ b/gfx/drivers/vulkan_shaders/pipeline_ribbon.vert @@ -7,6 +7,7 @@ layout(std140, set = 0, binding = 0) uniform UBO { float time; float yflip; + float alpha; } constants; float iqhash(float n) diff --git a/gfx/drivers/vulkan_shaders/pipeline_ribbon.vert.inc b/gfx/drivers/vulkan_shaders/pipeline_ribbon.vert.inc index 4282d54a3d7a..306ee2c214b7 100644 --- a/gfx/drivers/vulkan_shaders/pipeline_ribbon.vert.inc +++ b/gfx/drivers/vulkan_shaders/pipeline_ribbon.vert.inc @@ -1,4 +1,4 @@ -{0x07230203,0x00010000,0x000d0007,0x000000f6, +{0x07230203,0x00010000,0x000d000b,0x000000f6, 0x00000000,0x00020011,0x00000001,0x0006000b, 0x00000001,0x4c534c47,0x6474732e,0x3035342e, 0x00000000,0x0003000e,0x00000000,0x00000001, @@ -30,323 +30,326 @@ 0x0000007f,0x004f4255,0x00050006,0x0000007f, 0x00000000,0x656d6974,0x00000000,0x00050006, 0x0000007f,0x00000001,0x696c6679,0x00000070, -0x00050005,0x00000081,0x736e6f63,0x746e6174, -0x00000073,0x00030005,0x00000091,0x00000076, -0x00050005,0x00000093,0x74726556,0x6f437865, -0x0064726f,0x00030005,0x0000009b,0x00003276, -0x00030005,0x0000009d,0x00003376,0x00040005, -0x0000009f,0x61726170,0x0000006d,0x00040005, -0x000000c3,0x61726170,0x0000006d,0x00040005, -0x000000cd,0x61726170,0x0000006d,0x00030005, -0x000000e1,0x00434576,0x00060005,0x000000e4, -0x505f6c67,0x65567265,0x78657472,0x00000000, -0x00060006,0x000000e4,0x00000000,0x505f6c67, -0x7469736f,0x006e6f69,0x00070006,0x000000e4, -0x00000001,0x505f6c67,0x746e696f,0x657a6953, -0x00000000,0x00030005,0x000000e6,0x00000000, +0x00050006,0x0000007f,0x00000002,0x68706c61, +0x00000061,0x00050005,0x00000081,0x736e6f63, +0x746e6174,0x00000073,0x00030005,0x00000091, +0x00000076,0x00050005,0x00000093,0x74726556, +0x6f437865,0x0064726f,0x00030005,0x0000009b, +0x00003276,0x00030005,0x0000009d,0x00003376, +0x00040005,0x0000009f,0x61726170,0x0000006d, +0x00040005,0x000000c3,0x61726170,0x0000006d, +0x00040005,0x000000cd,0x61726170,0x0000006d, +0x00030005,0x000000e1,0x00434576,0x00060005, +0x000000e4,0x505f6c67,0x65567265,0x78657472, +0x00000000,0x00060006,0x000000e4,0x00000000, +0x505f6c67,0x7469736f,0x006e6f69,0x00070006, +0x000000e4,0x00000001,0x505f6c67,0x746e696f, +0x657a6953,0x00000000,0x00030005,0x000000e6, +0x00000000,0x00030047,0x0000007f,0x00000002, 0x00050048,0x0000007f,0x00000000,0x00000023, 0x00000000,0x00050048,0x0000007f,0x00000001, -0x00000023,0x00000004,0x00030047,0x0000007f, -0x00000002,0x00040047,0x00000081,0x00000022, -0x00000000,0x00040047,0x00000081,0x00000021, -0x00000000,0x00040047,0x00000093,0x0000001e, -0x00000000,0x00040047,0x000000e1,0x0000001e, -0x00000000,0x00050048,0x000000e4,0x00000000, -0x0000000b,0x00000000,0x00050048,0x000000e4, -0x00000001,0x0000000b,0x00000001,0x00030047, -0x000000e4,0x00000002,0x00020013,0x00000002, -0x00030021,0x00000003,0x00000002,0x00030016, -0x00000006,0x00000020,0x00040020,0x00000007, -0x00000007,0x00000006,0x00040021,0x00000008, -0x00000006,0x00000007,0x00040017,0x0000000c, -0x00000006,0x00000003,0x00040020,0x0000000d, -0x00000007,0x0000000c,0x00040021,0x0000000e, -0x00000006,0x0000000d,0x0004002b,0x00000006, -0x00000017,0x472aee8c,0x0004002b,0x00000006, -0x00000025,0x40400000,0x0004002b,0x00000006, -0x00000026,0x40000000,0x00040015,0x0000002d, -0x00000020,0x00000000,0x0004002b,0x0000002d, -0x0000002e,0x00000000,0x0004002b,0x0000002d, -0x00000031,0x00000001,0x0004002b,0x00000006, -0x00000034,0x42640000,0x0004002b,0x00000006, -0x00000037,0x42e20000,0x0004002b,0x0000002d, -0x00000038,0x00000002,0x0004002b,0x00000006, -0x00000041,0x3f800000,0x0004002b,0x00000006, -0x0000004d,0x42680000,0x0004002b,0x00000006, -0x0000005c,0x42e40000,0x0004002b,0x00000006, -0x00000064,0x432a0000,0x0004002b,0x00000006, -0x00000069,0x432b0000,0x0004002b,0x00000006, -0x0000007a,0x40800000,0x0004001e,0x0000007f, -0x00000006,0x00000006,0x00040020,0x00000080, -0x00000002,0x0000007f,0x0004003b,0x00000080, -0x00000081,0x00000002,0x00040015,0x00000082, -0x00000020,0x00000001,0x0004002b,0x00000082, -0x00000083,0x00000000,0x00040020,0x00000084, -0x00000002,0x00000006,0x0004002b,0x00000006, -0x00000087,0x41200000,0x00040020,0x00000092, -0x00000001,0x0000000c,0x0004003b,0x00000092, -0x00000093,0x00000001,0x00040020,0x00000094, -0x00000001,0x00000006,0x0004002b,0x00000006, -0x00000097,0x00000000,0x0004002b,0x00000006, -0x000000a2,0x41000000,0x0004002b,0x00000006, -0x000000a7,0x40a00000,0x0004002b,0x00000006, -0x000000ba,0x42c80000,0x0004002b,0x00000006, -0x000000c1,0x40e00000,0x0004002b,0x00000006, -0x000000c5,0x41700000,0x0004002b,0x00000006, -0x000000da,0x3e99999a,0x00040020,0x000000e0, -0x00000003,0x0000000c,0x0004003b,0x000000e0, -0x000000e1,0x00000003,0x00040017,0x000000e3, -0x00000006,0x00000004,0x0004001e,0x000000e4, -0x000000e3,0x00000006,0x00040020,0x000000e5, -0x00000003,0x000000e4,0x0004003b,0x000000e5, -0x000000e6,0x00000003,0x00040020,0x000000ec, -0x00000003,0x000000e3,0x0004002b,0x00000082, -0x000000ee,0x00000001,0x00040020,0x000000f1, -0x00000003,0x00000006,0x00050036,0x00000002, -0x00000004,0x00000000,0x00000003,0x000200f8, -0x00000005,0x0004003b,0x0000000d,0x00000091, -0x00000007,0x0004003b,0x0000000d,0x0000009b, -0x00000007,0x0004003b,0x0000000d,0x0000009d, -0x00000007,0x0004003b,0x0000000d,0x0000009f, -0x00000007,0x0004003b,0x0000000d,0x000000c3, -0x00000007,0x0004003b,0x0000000d,0x000000cd, -0x00000007,0x00050041,0x00000094,0x00000095, -0x00000093,0x0000002e,0x0004003d,0x00000006, -0x00000096,0x00000095,0x00050041,0x00000094, -0x00000098,0x00000093,0x00000031,0x0004003d, -0x00000006,0x00000099,0x00000098,0x00060050, -0x0000000c,0x0000009a,0x00000096,0x00000097, -0x00000099,0x0003003e,0x00000091,0x0000009a, -0x0004003d,0x0000000c,0x0000009c,0x00000091, -0x0003003e,0x0000009b,0x0000009c,0x0004003d, -0x0000000c,0x0000009e,0x00000091,0x0003003e, -0x0000009d,0x0000009e,0x0004003d,0x0000000c, -0x000000a0,0x0000009b,0x0003003e,0x0000009f, -0x000000a0,0x00050039,0x00000006,0x000000a1, -0x00000013,0x0000009f,0x00050088,0x00000006, -0x000000a3,0x000000a1,0x000000a2,0x00050041, -0x00000007,0x000000a4,0x00000091,0x00000031, -0x0003003e,0x000000a4,0x000000a3,0x00050041, -0x00000084,0x000000a5,0x00000081,0x00000083, -0x0004003d,0x00000006,0x000000a6,0x000000a5, -0x00050088,0x00000006,0x000000a8,0x000000a6, -0x000000a7,0x00050041,0x00000007,0x000000a9, -0x0000009d,0x0000002e,0x0004003d,0x00000006, -0x000000aa,0x000000a9,0x00050083,0x00000006, -0x000000ab,0x000000aa,0x000000a8,0x00050041, -0x00000007,0x000000ac,0x0000009d,0x0000002e, -0x0003003e,0x000000ac,0x000000ab,0x00050041, -0x00000007,0x000000ad,0x0000009d,0x0000002e, -0x0004003d,0x00000006,0x000000ae,0x000000ad, -0x00050088,0x00000006,0x000000af,0x000000ae, -0x0000007a,0x00050041,0x00000007,0x000000b0, -0x0000009d,0x0000002e,0x0003003e,0x000000b0, -0x000000af,0x00050041,0x00000084,0x000000b1, -0x00000081,0x00000083,0x0004003d,0x00000006, -0x000000b2,0x000000b1,0x00050088,0x00000006, -0x000000b3,0x000000b2,0x00000087,0x00050041, -0x00000007,0x000000b4,0x0000009d,0x00000038, -0x0004003d,0x00000006,0x000000b5,0x000000b4, -0x00050083,0x00000006,0x000000b6,0x000000b5, -0x000000b3,0x00050041,0x00000007,0x000000b7, -0x0000009d,0x00000038,0x0003003e,0x000000b7, -0x000000b6,0x00050041,0x00000084,0x000000b8, -0x00000081,0x00000083,0x0004003d,0x00000006, -0x000000b9,0x000000b8,0x00050088,0x00000006, -0x000000bb,0x000000b9,0x000000ba,0x00050041, -0x00000007,0x000000bc,0x0000009d,0x00000031, -0x0004003d,0x00000006,0x000000bd,0x000000bc, -0x00050083,0x00000006,0x000000be,0x000000bd, -0x000000bb,0x00050041,0x00000007,0x000000bf, -0x0000009d,0x00000031,0x0003003e,0x000000bf, -0x000000be,0x0004003d,0x0000000c,0x000000c0, -0x0000009d,0x0005008e,0x0000000c,0x000000c2, -0x000000c0,0x000000c1,0x0003003e,0x000000c3, -0x000000c2,0x00050039,0x00000006,0x000000c4, -0x00000010,0x000000c3,0x00050088,0x00000006, -0x000000c6,0x000000c4,0x000000c5,0x00050041, -0x00000007,0x000000c7,0x00000091,0x00000038, -0x0004003d,0x00000006,0x000000c8,0x000000c7, -0x00050083,0x00000006,0x000000c9,0x000000c8, -0x000000c6,0x00050041,0x00000007,0x000000ca, -0x00000091,0x00000038,0x0003003e,0x000000ca, -0x000000c9,0x0004003d,0x0000000c,0x000000cb, -0x0000009d,0x0005008e,0x0000000c,0x000000cc, -0x000000cb,0x000000c1,0x0003003e,0x000000cd, -0x000000cc,0x00050039,0x00000006,0x000000ce, -0x00000010,0x000000cd,0x00050088,0x00000006, -0x000000cf,0x000000ce,0x000000c5,0x00050041, -0x00000007,0x000000d0,0x00000091,0x0000002e, -0x0004003d,0x00000006,0x000000d1,0x000000d0, -0x00050085,0x00000006,0x000000d2,0x000000d1, -0x00000026,0x00050041,0x00000084,0x000000d3, -0x00000081,0x00000083,0x0004003d,0x00000006, -0x000000d4,0x000000d3,0x00050088,0x00000006, -0x000000d5,0x000000d4,0x00000026,0x00050083, -0x00000006,0x000000d6,0x000000d2,0x000000d5, -0x0006000c,0x00000006,0x000000d7,0x00000001, -0x0000000e,0x000000d6,0x00050088,0x00000006, -0x000000d8,0x000000d7,0x000000a7,0x00050081, -0x00000006,0x000000d9,0x000000cf,0x000000d8, -0x00050083,0x00000006,0x000000db,0x000000d9, -0x000000da,0x00050041,0x00000007,0x000000dc, -0x00000091,0x00000031,0x0004003d,0x00000006, -0x000000dd,0x000000dc,0x00050083,0x00000006, -0x000000de,0x000000dd,0x000000db,0x00050041, -0x00000007,0x000000df,0x00000091,0x00000031, -0x0003003e,0x000000df,0x000000de,0x0004003d, -0x0000000c,0x000000e2,0x00000091,0x0003003e, -0x000000e1,0x000000e2,0x0004003d,0x0000000c, -0x000000e7,0x00000091,0x00050051,0x00000006, -0x000000e8,0x000000e7,0x00000000,0x00050051, -0x00000006,0x000000e9,0x000000e7,0x00000001, -0x00050051,0x00000006,0x000000ea,0x000000e7, -0x00000002,0x00070050,0x000000e3,0x000000eb, -0x000000e8,0x000000e9,0x000000ea,0x00000041, -0x00050041,0x000000ec,0x000000ed,0x000000e6, -0x00000083,0x0003003e,0x000000ed,0x000000eb, -0x00050041,0x00000084,0x000000ef,0x00000081, -0x000000ee,0x0004003d,0x00000006,0x000000f0, -0x000000ef,0x00060041,0x000000f1,0x000000f2, -0x000000e6,0x00000083,0x00000031,0x0004003d, -0x00000006,0x000000f3,0x000000f2,0x00050085, -0x00000006,0x000000f4,0x000000f3,0x000000f0, -0x00060041,0x000000f1,0x000000f5,0x000000e6, -0x00000083,0x00000031,0x0003003e,0x000000f5, -0x000000f4,0x000100fd,0x00010038,0x00050036, -0x00000006,0x0000000a,0x00000000,0x00000008, -0x00030037,0x00000007,0x00000009,0x000200f8, -0x0000000b,0x0004003d,0x00000006,0x00000015, -0x00000009,0x0006000c,0x00000006,0x00000016, -0x00000001,0x0000000d,0x00000015,0x00050085, -0x00000006,0x00000018,0x00000016,0x00000017, -0x0006000c,0x00000006,0x00000019,0x00000001, -0x0000000a,0x00000018,0x000200fe,0x00000019, -0x00010038,0x00050036,0x00000006,0x00000010, -0x00000000,0x0000000e,0x00030037,0x0000000d, -0x0000000f,0x000200f8,0x00000011,0x0004003b, -0x0000000d,0x0000001c,0x00000007,0x0004003b, -0x0000000d,0x0000001f,0x00000007,0x0004003b, -0x00000007,0x0000002c,0x00000007,0x0004003b, -0x00000007,0x0000003d,0x00000007,0x0004003b, -0x00000007,0x00000043,0x00000007,0x0004003b, -0x00000007,0x0000004a,0x00000007,0x0004003b, -0x00000007,0x0000004f,0x00000007,0x0004003b, -0x00000007,0x00000059,0x00000007,0x0004003b, -0x00000007,0x0000005e,0x00000007,0x0004003b, -0x00000007,0x00000066,0x00000007,0x0004003b, -0x00000007,0x0000006b,0x00000007,0x0004003d, -0x0000000c,0x0000001d,0x0000000f,0x0006000c, -0x0000000c,0x0000001e,0x00000001,0x00000008, -0x0000001d,0x0003003e,0x0000001c,0x0000001e, -0x0004003d,0x0000000c,0x00000020,0x0000000f, -0x0006000c,0x0000000c,0x00000021,0x00000001, -0x0000000a,0x00000020,0x0003003e,0x0000001f, -0x00000021,0x0004003d,0x0000000c,0x00000022, -0x0000001f,0x0004003d,0x0000000c,0x00000023, -0x0000001f,0x00050085,0x0000000c,0x00000024, -0x00000022,0x00000023,0x0004003d,0x0000000c, -0x00000027,0x0000001f,0x0005008e,0x0000000c, -0x00000028,0x00000027,0x00000026,0x00060050, -0x0000000c,0x00000029,0x00000025,0x00000025, -0x00000025,0x00050083,0x0000000c,0x0000002a, -0x00000029,0x00000028,0x00050085,0x0000000c, -0x0000002b,0x00000024,0x0000002a,0x0003003e, -0x0000001f,0x0000002b,0x00050041,0x00000007, -0x0000002f,0x0000001c,0x0000002e,0x0004003d, -0x00000006,0x00000030,0x0000002f,0x00050041, -0x00000007,0x00000032,0x0000001c,0x00000031, -0x0004003d,0x00000006,0x00000033,0x00000032, -0x00050085,0x00000006,0x00000035,0x00000033, -0x00000034,0x00050081,0x00000006,0x00000036, -0x00000030,0x00000035,0x00050041,0x00000007, -0x00000039,0x0000001c,0x00000038,0x0004003d, -0x00000006,0x0000003a,0x00000039,0x00050085, -0x00000006,0x0000003b,0x00000037,0x0000003a, -0x00050081,0x00000006,0x0000003c,0x00000036, -0x0000003b,0x0003003e,0x0000002c,0x0000003c, -0x0004003d,0x00000006,0x0000003e,0x0000002c, -0x0003003e,0x0000003d,0x0000003e,0x00050039, -0x00000006,0x0000003f,0x0000000a,0x0000003d, -0x0004003d,0x00000006,0x00000040,0x0000002c, -0x00050081,0x00000006,0x00000042,0x00000040, -0x00000041,0x0003003e,0x00000043,0x00000042, -0x00050039,0x00000006,0x00000044,0x0000000a, -0x00000043,0x00050041,0x00000007,0x00000045, -0x0000001f,0x0000002e,0x0004003d,0x00000006, -0x00000046,0x00000045,0x0008000c,0x00000006, -0x00000047,0x00000001,0x0000002e,0x0000003f, -0x00000044,0x00000046,0x0004003d,0x00000006, -0x00000048,0x0000002c,0x00050081,0x00000006, -0x00000049,0x00000048,0x00000034,0x0003003e, -0x0000004a,0x00000049,0x00050039,0x00000006, -0x0000004b,0x0000000a,0x0000004a,0x0004003d, -0x00000006,0x0000004c,0x0000002c,0x00050081, -0x00000006,0x0000004e,0x0000004c,0x0000004d, -0x0003003e,0x0000004f,0x0000004e,0x00050039, -0x00000006,0x00000050,0x0000000a,0x0000004f, -0x00050041,0x00000007,0x00000051,0x0000001f, -0x0000002e,0x0004003d,0x00000006,0x00000052, -0x00000051,0x0008000c,0x00000006,0x00000053, -0x00000001,0x0000002e,0x0000004b,0x00000050, -0x00000052,0x00050041,0x00000007,0x00000054, -0x0000001f,0x00000031,0x0004003d,0x00000006, -0x00000055,0x00000054,0x0008000c,0x00000006, -0x00000056,0x00000001,0x0000002e,0x00000047, -0x00000053,0x00000055,0x0004003d,0x00000006, -0x00000057,0x0000002c,0x00050081,0x00000006, -0x00000058,0x00000057,0x00000037,0x0003003e, -0x00000059,0x00000058,0x00050039,0x00000006, -0x0000005a,0x0000000a,0x00000059,0x0004003d, -0x00000006,0x0000005b,0x0000002c,0x00050081, -0x00000006,0x0000005d,0x0000005b,0x0000005c, -0x0003003e,0x0000005e,0x0000005d,0x00050039, -0x00000006,0x0000005f,0x0000000a,0x0000005e, -0x00050041,0x00000007,0x00000060,0x0000001f, -0x0000002e,0x0004003d,0x00000006,0x00000061, -0x00000060,0x0008000c,0x00000006,0x00000062, -0x00000001,0x0000002e,0x0000005a,0x0000005f, -0x00000061,0x0004003d,0x00000006,0x00000063, -0x0000002c,0x00050081,0x00000006,0x00000065, -0x00000063,0x00000064,0x0003003e,0x00000066, -0x00000065,0x00050039,0x00000006,0x00000067, -0x0000000a,0x00000066,0x0004003d,0x00000006, -0x00000068,0x0000002c,0x00050081,0x00000006, -0x0000006a,0x00000068,0x00000069,0x0003003e, -0x0000006b,0x0000006a,0x00050039,0x00000006, -0x0000006c,0x0000000a,0x0000006b,0x00050041, -0x00000007,0x0000006d,0x0000001f,0x0000002e, -0x0004003d,0x00000006,0x0000006e,0x0000006d, -0x0008000c,0x00000006,0x0000006f,0x00000001, -0x0000002e,0x00000067,0x0000006c,0x0000006e, -0x00050041,0x00000007,0x00000070,0x0000001f, -0x00000031,0x0004003d,0x00000006,0x00000071, -0x00000070,0x0008000c,0x00000006,0x00000072, -0x00000001,0x0000002e,0x00000062,0x0000006f, -0x00000071,0x00050041,0x00000007,0x00000073, -0x0000001f,0x00000038,0x0004003d,0x00000006, -0x00000074,0x00000073,0x0008000c,0x00000006, -0x00000075,0x00000001,0x0000002e,0x00000056, -0x00000072,0x00000074,0x000200fe,0x00000075, -0x00010038,0x00050036,0x00000006,0x00000013, -0x00000000,0x0000000e,0x00030037,0x0000000d, -0x00000012,0x000200f8,0x00000014,0x00050041, -0x00000007,0x00000078,0x00000012,0x00000038, -0x0004003d,0x00000006,0x00000079,0x00000078, -0x00050085,0x00000006,0x0000007b,0x00000079, -0x0000007a,0x0006000c,0x00000006,0x0000007c, -0x00000001,0x0000000e,0x0000007b,0x00050041, -0x00000007,0x0000007d,0x00000012,0x00000038, -0x0004003d,0x00000006,0x0000007e,0x0000007d, -0x00050041,0x00000084,0x00000085,0x00000081, -0x00000083,0x0004003d,0x00000006,0x00000086, -0x00000085,0x00050088,0x00000006,0x00000088, -0x00000086,0x00000087,0x00050081,0x00000006, -0x00000089,0x0000007e,0x00000088,0x00050041, -0x00000007,0x0000008a,0x00000012,0x0000002e, -0x0004003d,0x00000006,0x0000008b,0x0000008a, -0x00050081,0x00000006,0x0000008c,0x00000089, -0x0000008b,0x0006000c,0x00000006,0x0000008d, -0x00000001,0x0000000e,0x0000008c,0x00050085, -0x00000006,0x0000008e,0x0000007c,0x0000008d, -0x000200fe,0x0000008e,0x00010038} +0x00000023,0x00000004,0x00050048,0x0000007f, +0x00000002,0x00000023,0x00000008,0x00040047, +0x00000081,0x00000021,0x00000000,0x00040047, +0x00000081,0x00000022,0x00000000,0x00040047, +0x00000093,0x0000001e,0x00000000,0x00040047, +0x000000e1,0x0000001e,0x00000000,0x00030047, +0x000000e4,0x00000002,0x00050048,0x000000e4, +0x00000000,0x0000000b,0x00000000,0x00050048, +0x000000e4,0x00000001,0x0000000b,0x00000001, +0x00020013,0x00000002,0x00030021,0x00000003, +0x00000002,0x00030016,0x00000006,0x00000020, +0x00040020,0x00000007,0x00000007,0x00000006, +0x00040021,0x00000008,0x00000006,0x00000007, +0x00040017,0x0000000c,0x00000006,0x00000003, +0x00040020,0x0000000d,0x00000007,0x0000000c, +0x00040021,0x0000000e,0x00000006,0x0000000d, +0x0004002b,0x00000006,0x00000017,0x472aee8c, +0x0004002b,0x00000006,0x00000025,0x40400000, +0x0004002b,0x00000006,0x00000026,0x40000000, +0x00040015,0x0000002d,0x00000020,0x00000000, +0x0004002b,0x0000002d,0x0000002e,0x00000000, +0x0004002b,0x0000002d,0x00000031,0x00000001, +0x0004002b,0x00000006,0x00000034,0x42640000, +0x0004002b,0x00000006,0x00000037,0x42e20000, +0x0004002b,0x0000002d,0x00000038,0x00000002, +0x0004002b,0x00000006,0x00000041,0x3f800000, +0x0004002b,0x00000006,0x0000004d,0x42680000, +0x0004002b,0x00000006,0x0000005c,0x42e40000, +0x0004002b,0x00000006,0x00000064,0x432a0000, +0x0004002b,0x00000006,0x00000069,0x432b0000, +0x0004002b,0x00000006,0x0000007a,0x40800000, +0x0005001e,0x0000007f,0x00000006,0x00000006, +0x00000006,0x00040020,0x00000080,0x00000002, +0x0000007f,0x0004003b,0x00000080,0x00000081, +0x00000002,0x00040015,0x00000082,0x00000020, +0x00000001,0x0004002b,0x00000082,0x00000083, +0x00000000,0x00040020,0x00000084,0x00000002, +0x00000006,0x0004002b,0x00000006,0x00000087, +0x41200000,0x00040020,0x00000092,0x00000001, +0x0000000c,0x0004003b,0x00000092,0x00000093, +0x00000001,0x00040020,0x00000094,0x00000001, +0x00000006,0x0004002b,0x00000006,0x00000097, +0x00000000,0x0004002b,0x00000006,0x000000a2, +0x41000000,0x0004002b,0x00000006,0x000000a7, +0x40a00000,0x0004002b,0x00000006,0x000000ba, +0x42c80000,0x0004002b,0x00000006,0x000000c1, +0x40e00000,0x0004002b,0x00000006,0x000000c5, +0x41700000,0x0004002b,0x00000006,0x000000da, +0x3e99999a,0x00040020,0x000000e0,0x00000003, +0x0000000c,0x0004003b,0x000000e0,0x000000e1, +0x00000003,0x00040017,0x000000e3,0x00000006, +0x00000004,0x0004001e,0x000000e4,0x000000e3, +0x00000006,0x00040020,0x000000e5,0x00000003, +0x000000e4,0x0004003b,0x000000e5,0x000000e6, +0x00000003,0x00040020,0x000000ec,0x00000003, +0x000000e3,0x0004002b,0x00000082,0x000000ee, +0x00000001,0x00040020,0x000000f1,0x00000003, +0x00000006,0x00050036,0x00000002,0x00000004, +0x00000000,0x00000003,0x000200f8,0x00000005, +0x0004003b,0x0000000d,0x00000091,0x00000007, +0x0004003b,0x0000000d,0x0000009b,0x00000007, +0x0004003b,0x0000000d,0x0000009d,0x00000007, +0x0004003b,0x0000000d,0x0000009f,0x00000007, +0x0004003b,0x0000000d,0x000000c3,0x00000007, +0x0004003b,0x0000000d,0x000000cd,0x00000007, +0x00050041,0x00000094,0x00000095,0x00000093, +0x0000002e,0x0004003d,0x00000006,0x00000096, +0x00000095,0x00050041,0x00000094,0x00000098, +0x00000093,0x00000031,0x0004003d,0x00000006, +0x00000099,0x00000098,0x00060050,0x0000000c, +0x0000009a,0x00000096,0x00000097,0x00000099, +0x0003003e,0x00000091,0x0000009a,0x0004003d, +0x0000000c,0x0000009c,0x00000091,0x0003003e, +0x0000009b,0x0000009c,0x0004003d,0x0000000c, +0x0000009e,0x00000091,0x0003003e,0x0000009d, +0x0000009e,0x0004003d,0x0000000c,0x000000a0, +0x0000009b,0x0003003e,0x0000009f,0x000000a0, +0x00050039,0x00000006,0x000000a1,0x00000013, +0x0000009f,0x00050088,0x00000006,0x000000a3, +0x000000a1,0x000000a2,0x00050041,0x00000007, +0x000000a4,0x00000091,0x00000031,0x0003003e, +0x000000a4,0x000000a3,0x00050041,0x00000084, +0x000000a5,0x00000081,0x00000083,0x0004003d, +0x00000006,0x000000a6,0x000000a5,0x00050088, +0x00000006,0x000000a8,0x000000a6,0x000000a7, +0x00050041,0x00000007,0x000000a9,0x0000009d, +0x0000002e,0x0004003d,0x00000006,0x000000aa, +0x000000a9,0x00050083,0x00000006,0x000000ab, +0x000000aa,0x000000a8,0x00050041,0x00000007, +0x000000ac,0x0000009d,0x0000002e,0x0003003e, +0x000000ac,0x000000ab,0x00050041,0x00000007, +0x000000ad,0x0000009d,0x0000002e,0x0004003d, +0x00000006,0x000000ae,0x000000ad,0x00050088, +0x00000006,0x000000af,0x000000ae,0x0000007a, +0x00050041,0x00000007,0x000000b0,0x0000009d, +0x0000002e,0x0003003e,0x000000b0,0x000000af, +0x00050041,0x00000084,0x000000b1,0x00000081, +0x00000083,0x0004003d,0x00000006,0x000000b2, +0x000000b1,0x00050088,0x00000006,0x000000b3, +0x000000b2,0x00000087,0x00050041,0x00000007, +0x000000b4,0x0000009d,0x00000038,0x0004003d, +0x00000006,0x000000b5,0x000000b4,0x00050083, +0x00000006,0x000000b6,0x000000b5,0x000000b3, +0x00050041,0x00000007,0x000000b7,0x0000009d, +0x00000038,0x0003003e,0x000000b7,0x000000b6, +0x00050041,0x00000084,0x000000b8,0x00000081, +0x00000083,0x0004003d,0x00000006,0x000000b9, +0x000000b8,0x00050088,0x00000006,0x000000bb, +0x000000b9,0x000000ba,0x00050041,0x00000007, +0x000000bc,0x0000009d,0x00000031,0x0004003d, +0x00000006,0x000000bd,0x000000bc,0x00050083, +0x00000006,0x000000be,0x000000bd,0x000000bb, +0x00050041,0x00000007,0x000000bf,0x0000009d, +0x00000031,0x0003003e,0x000000bf,0x000000be, +0x0004003d,0x0000000c,0x000000c0,0x0000009d, +0x0005008e,0x0000000c,0x000000c2,0x000000c0, +0x000000c1,0x0003003e,0x000000c3,0x000000c2, +0x00050039,0x00000006,0x000000c4,0x00000010, +0x000000c3,0x00050088,0x00000006,0x000000c6, +0x000000c4,0x000000c5,0x00050041,0x00000007, +0x000000c7,0x00000091,0x00000038,0x0004003d, +0x00000006,0x000000c8,0x000000c7,0x00050083, +0x00000006,0x000000c9,0x000000c8,0x000000c6, +0x00050041,0x00000007,0x000000ca,0x00000091, +0x00000038,0x0003003e,0x000000ca,0x000000c9, +0x0004003d,0x0000000c,0x000000cb,0x0000009d, +0x0005008e,0x0000000c,0x000000cc,0x000000cb, +0x000000c1,0x0003003e,0x000000cd,0x000000cc, +0x00050039,0x00000006,0x000000ce,0x00000010, +0x000000cd,0x00050088,0x00000006,0x000000cf, +0x000000ce,0x000000c5,0x00050041,0x00000007, +0x000000d0,0x00000091,0x0000002e,0x0004003d, +0x00000006,0x000000d1,0x000000d0,0x00050085, +0x00000006,0x000000d2,0x000000d1,0x00000026, +0x00050041,0x00000084,0x000000d3,0x00000081, +0x00000083,0x0004003d,0x00000006,0x000000d4, +0x000000d3,0x00050088,0x00000006,0x000000d5, +0x000000d4,0x00000026,0x00050083,0x00000006, +0x000000d6,0x000000d2,0x000000d5,0x0006000c, +0x00000006,0x000000d7,0x00000001,0x0000000e, +0x000000d6,0x00050088,0x00000006,0x000000d8, +0x000000d7,0x000000a7,0x00050081,0x00000006, +0x000000d9,0x000000cf,0x000000d8,0x00050083, +0x00000006,0x000000db,0x000000d9,0x000000da, +0x00050041,0x00000007,0x000000dc,0x00000091, +0x00000031,0x0004003d,0x00000006,0x000000dd, +0x000000dc,0x00050083,0x00000006,0x000000de, +0x000000dd,0x000000db,0x00050041,0x00000007, +0x000000df,0x00000091,0x00000031,0x0003003e, +0x000000df,0x000000de,0x0004003d,0x0000000c, +0x000000e2,0x00000091,0x0003003e,0x000000e1, +0x000000e2,0x0004003d,0x0000000c,0x000000e7, +0x00000091,0x00050051,0x00000006,0x000000e8, +0x000000e7,0x00000000,0x00050051,0x00000006, +0x000000e9,0x000000e7,0x00000001,0x00050051, +0x00000006,0x000000ea,0x000000e7,0x00000002, +0x00070050,0x000000e3,0x000000eb,0x000000e8, +0x000000e9,0x000000ea,0x00000041,0x00050041, +0x000000ec,0x000000ed,0x000000e6,0x00000083, +0x0003003e,0x000000ed,0x000000eb,0x00050041, +0x00000084,0x000000ef,0x00000081,0x000000ee, +0x0004003d,0x00000006,0x000000f0,0x000000ef, +0x00060041,0x000000f1,0x000000f2,0x000000e6, +0x00000083,0x00000031,0x0004003d,0x00000006, +0x000000f3,0x000000f2,0x00050085,0x00000006, +0x000000f4,0x000000f3,0x000000f0,0x00060041, +0x000000f1,0x000000f5,0x000000e6,0x00000083, +0x00000031,0x0003003e,0x000000f5,0x000000f4, +0x000100fd,0x00010038,0x00050036,0x00000006, +0x0000000a,0x00000000,0x00000008,0x00030037, +0x00000007,0x00000009,0x000200f8,0x0000000b, +0x0004003d,0x00000006,0x00000015,0x00000009, +0x0006000c,0x00000006,0x00000016,0x00000001, +0x0000000d,0x00000015,0x00050085,0x00000006, +0x00000018,0x00000016,0x00000017,0x0006000c, +0x00000006,0x00000019,0x00000001,0x0000000a, +0x00000018,0x000200fe,0x00000019,0x00010038, +0x00050036,0x00000006,0x00000010,0x00000000, +0x0000000e,0x00030037,0x0000000d,0x0000000f, +0x000200f8,0x00000011,0x0004003b,0x0000000d, +0x0000001c,0x00000007,0x0004003b,0x0000000d, +0x0000001f,0x00000007,0x0004003b,0x00000007, +0x0000002c,0x00000007,0x0004003b,0x00000007, +0x0000003d,0x00000007,0x0004003b,0x00000007, +0x00000043,0x00000007,0x0004003b,0x00000007, +0x0000004a,0x00000007,0x0004003b,0x00000007, +0x0000004f,0x00000007,0x0004003b,0x00000007, +0x00000059,0x00000007,0x0004003b,0x00000007, +0x0000005e,0x00000007,0x0004003b,0x00000007, +0x00000066,0x00000007,0x0004003b,0x00000007, +0x0000006b,0x00000007,0x0004003d,0x0000000c, +0x0000001d,0x0000000f,0x0006000c,0x0000000c, +0x0000001e,0x00000001,0x00000008,0x0000001d, +0x0003003e,0x0000001c,0x0000001e,0x0004003d, +0x0000000c,0x00000020,0x0000000f,0x0006000c, +0x0000000c,0x00000021,0x00000001,0x0000000a, +0x00000020,0x0003003e,0x0000001f,0x00000021, +0x0004003d,0x0000000c,0x00000022,0x0000001f, +0x0004003d,0x0000000c,0x00000023,0x0000001f, +0x00050085,0x0000000c,0x00000024,0x00000022, +0x00000023,0x0004003d,0x0000000c,0x00000027, +0x0000001f,0x0005008e,0x0000000c,0x00000028, +0x00000027,0x00000026,0x00060050,0x0000000c, +0x00000029,0x00000025,0x00000025,0x00000025, +0x00050083,0x0000000c,0x0000002a,0x00000029, +0x00000028,0x00050085,0x0000000c,0x0000002b, +0x00000024,0x0000002a,0x0003003e,0x0000001f, +0x0000002b,0x00050041,0x00000007,0x0000002f, +0x0000001c,0x0000002e,0x0004003d,0x00000006, +0x00000030,0x0000002f,0x00050041,0x00000007, +0x00000032,0x0000001c,0x00000031,0x0004003d, +0x00000006,0x00000033,0x00000032,0x00050085, +0x00000006,0x00000035,0x00000033,0x00000034, +0x00050081,0x00000006,0x00000036,0x00000030, +0x00000035,0x00050041,0x00000007,0x00000039, +0x0000001c,0x00000038,0x0004003d,0x00000006, +0x0000003a,0x00000039,0x00050085,0x00000006, +0x0000003b,0x00000037,0x0000003a,0x00050081, +0x00000006,0x0000003c,0x00000036,0x0000003b, +0x0003003e,0x0000002c,0x0000003c,0x0004003d, +0x00000006,0x0000003e,0x0000002c,0x0003003e, +0x0000003d,0x0000003e,0x00050039,0x00000006, +0x0000003f,0x0000000a,0x0000003d,0x0004003d, +0x00000006,0x00000040,0x0000002c,0x00050081, +0x00000006,0x00000042,0x00000040,0x00000041, +0x0003003e,0x00000043,0x00000042,0x00050039, +0x00000006,0x00000044,0x0000000a,0x00000043, +0x00050041,0x00000007,0x00000045,0x0000001f, +0x0000002e,0x0004003d,0x00000006,0x00000046, +0x00000045,0x0008000c,0x00000006,0x00000047, +0x00000001,0x0000002e,0x0000003f,0x00000044, +0x00000046,0x0004003d,0x00000006,0x00000048, +0x0000002c,0x00050081,0x00000006,0x00000049, +0x00000048,0x00000034,0x0003003e,0x0000004a, +0x00000049,0x00050039,0x00000006,0x0000004b, +0x0000000a,0x0000004a,0x0004003d,0x00000006, +0x0000004c,0x0000002c,0x00050081,0x00000006, +0x0000004e,0x0000004c,0x0000004d,0x0003003e, +0x0000004f,0x0000004e,0x00050039,0x00000006, +0x00000050,0x0000000a,0x0000004f,0x00050041, +0x00000007,0x00000051,0x0000001f,0x0000002e, +0x0004003d,0x00000006,0x00000052,0x00000051, +0x0008000c,0x00000006,0x00000053,0x00000001, +0x0000002e,0x0000004b,0x00000050,0x00000052, +0x00050041,0x00000007,0x00000054,0x0000001f, +0x00000031,0x0004003d,0x00000006,0x00000055, +0x00000054,0x0008000c,0x00000006,0x00000056, +0x00000001,0x0000002e,0x00000047,0x00000053, +0x00000055,0x0004003d,0x00000006,0x00000057, +0x0000002c,0x00050081,0x00000006,0x00000058, +0x00000057,0x00000037,0x0003003e,0x00000059, +0x00000058,0x00050039,0x00000006,0x0000005a, +0x0000000a,0x00000059,0x0004003d,0x00000006, +0x0000005b,0x0000002c,0x00050081,0x00000006, +0x0000005d,0x0000005b,0x0000005c,0x0003003e, +0x0000005e,0x0000005d,0x00050039,0x00000006, +0x0000005f,0x0000000a,0x0000005e,0x00050041, +0x00000007,0x00000060,0x0000001f,0x0000002e, +0x0004003d,0x00000006,0x00000061,0x00000060, +0x0008000c,0x00000006,0x00000062,0x00000001, +0x0000002e,0x0000005a,0x0000005f,0x00000061, +0x0004003d,0x00000006,0x00000063,0x0000002c, +0x00050081,0x00000006,0x00000065,0x00000063, +0x00000064,0x0003003e,0x00000066,0x00000065, +0x00050039,0x00000006,0x00000067,0x0000000a, +0x00000066,0x0004003d,0x00000006,0x00000068, +0x0000002c,0x00050081,0x00000006,0x0000006a, +0x00000068,0x00000069,0x0003003e,0x0000006b, +0x0000006a,0x00050039,0x00000006,0x0000006c, +0x0000000a,0x0000006b,0x00050041,0x00000007, +0x0000006d,0x0000001f,0x0000002e,0x0004003d, +0x00000006,0x0000006e,0x0000006d,0x0008000c, +0x00000006,0x0000006f,0x00000001,0x0000002e, +0x00000067,0x0000006c,0x0000006e,0x00050041, +0x00000007,0x00000070,0x0000001f,0x00000031, +0x0004003d,0x00000006,0x00000071,0x00000070, +0x0008000c,0x00000006,0x00000072,0x00000001, +0x0000002e,0x00000062,0x0000006f,0x00000071, +0x00050041,0x00000007,0x00000073,0x0000001f, +0x00000038,0x0004003d,0x00000006,0x00000074, +0x00000073,0x0008000c,0x00000006,0x00000075, +0x00000001,0x0000002e,0x00000056,0x00000072, +0x00000074,0x000200fe,0x00000075,0x00010038, +0x00050036,0x00000006,0x00000013,0x00000000, +0x0000000e,0x00030037,0x0000000d,0x00000012, +0x000200f8,0x00000014,0x00050041,0x00000007, +0x00000078,0x00000012,0x00000038,0x0004003d, +0x00000006,0x00000079,0x00000078,0x00050085, +0x00000006,0x0000007b,0x00000079,0x0000007a, +0x0006000c,0x00000006,0x0000007c,0x00000001, +0x0000000e,0x0000007b,0x00050041,0x00000007, +0x0000007d,0x00000012,0x00000038,0x0004003d, +0x00000006,0x0000007e,0x0000007d,0x00050041, +0x00000084,0x00000085,0x00000081,0x00000083, +0x0004003d,0x00000006,0x00000086,0x00000085, +0x00050088,0x00000006,0x00000088,0x00000086, +0x00000087,0x00050081,0x00000006,0x00000089, +0x0000007e,0x00000088,0x00050041,0x00000007, +0x0000008a,0x00000012,0x0000002e,0x0004003d, +0x00000006,0x0000008b,0x0000008a,0x00050081, +0x00000006,0x0000008c,0x00000089,0x0000008b, +0x0006000c,0x00000006,0x0000008d,0x00000001, +0x0000000e,0x0000008c,0x00050085,0x00000006, +0x0000008e,0x0000007c,0x0000008d,0x000200fe, +0x0000008e,0x00010038} diff --git a/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.frag b/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.frag index 4cbadfc9979c..a2b6b83d6646 100644 --- a/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.frag +++ b/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.frag @@ -1,8 +1,15 @@ #version 310 es precision mediump float; +layout(std140, set = 0, binding = 0) uniform UBO +{ + float time; + float yflip; + float alpha; +} constants; + layout(location = 0) out vec4 FragColor; void main() { - FragColor = vec4(0.05, 0.05, 0.05, 1.0); + FragColor = vec4(0.05, 0.05, 0.05, constants.alpha); } diff --git a/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.frag.inc b/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.frag.inc index 86ab83fe8c8c..074eefd6ba62 100644 --- a/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.frag.inc +++ b/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.frag.inc @@ -1,4 +1,4 @@ -{0x07230203,0x00010000,0x000d0007,0x0000000d, +{0x07230203,0x00010000,0x000d000b,0x00000014, 0x00000000,0x00020011,0x00000001,0x0006000b, 0x00000001,0x4c534c47,0x6474732e,0x3035342e, 0x00000000,0x0003000e,0x00000000,0x00000001, @@ -11,18 +11,42 @@ 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, 0x74636572,0x00657669,0x00040005,0x00000004, 0x6e69616d,0x00000000,0x00050005,0x00000009, -0x67617246,0x6f6c6f43,0x00000072,0x00030047, -0x00000009,0x00000000,0x00040047,0x00000009, -0x0000001e,0x00000000,0x00020013,0x00000002, -0x00030021,0x00000003,0x00000002,0x00030016, -0x00000006,0x00000020,0x00040017,0x00000007, -0x00000006,0x00000004,0x00040020,0x00000008, -0x00000003,0x00000007,0x0004003b,0x00000008, -0x00000009,0x00000003,0x0004002b,0x00000006, -0x0000000a,0x3d4ccccd,0x0004002b,0x00000006, -0x0000000b,0x3f800000,0x0007002c,0x00000007, -0x0000000c,0x0000000a,0x0000000a,0x0000000a, -0x0000000b,0x00050036,0x00000002,0x00000004, -0x00000000,0x00000003,0x000200f8,0x00000005, -0x0003003e,0x00000009,0x0000000c,0x000100fd, -0x00010038} +0x67617246,0x6f6c6f43,0x00000072,0x00030005, +0x0000000b,0x004f4255,0x00050006,0x0000000b, +0x00000000,0x656d6974,0x00000000,0x00050006, +0x0000000b,0x00000001,0x696c6679,0x00000070, +0x00050006,0x0000000b,0x00000002,0x68706c61, +0x00000061,0x00050005,0x0000000d,0x736e6f63, +0x746e6174,0x00000073,0x00030047,0x00000009, +0x00000000,0x00040047,0x00000009,0x0000001e, +0x00000000,0x00030047,0x0000000b,0x00000002, +0x00040048,0x0000000b,0x00000000,0x00000000, +0x00050048,0x0000000b,0x00000000,0x00000023, +0x00000000,0x00040048,0x0000000b,0x00000001, +0x00000000,0x00050048,0x0000000b,0x00000001, +0x00000023,0x00000004,0x00040048,0x0000000b, +0x00000002,0x00000000,0x00050048,0x0000000b, +0x00000002,0x00000023,0x00000008,0x00040047, +0x0000000d,0x00000021,0x00000000,0x00040047, +0x0000000d,0x00000022,0x00000000,0x00030047, +0x00000012,0x00000000,0x00030047,0x00000013, +0x00000000,0x00020013,0x00000002,0x00030021, +0x00000003,0x00000002,0x00030016,0x00000006, +0x00000020,0x00040017,0x00000007,0x00000006, +0x00000004,0x00040020,0x00000008,0x00000003, +0x00000007,0x0004003b,0x00000008,0x00000009, +0x00000003,0x0004002b,0x00000006,0x0000000a, +0x3d4ccccd,0x0005001e,0x0000000b,0x00000006, +0x00000006,0x00000006,0x00040020,0x0000000c, +0x00000002,0x0000000b,0x0004003b,0x0000000c, +0x0000000d,0x00000002,0x00040015,0x0000000e, +0x00000020,0x00000001,0x0004002b,0x0000000e, +0x0000000f,0x00000002,0x00040020,0x00000010, +0x00000002,0x00000006,0x00050036,0x00000002, +0x00000004,0x00000000,0x00000003,0x000200f8, +0x00000005,0x00050041,0x00000010,0x00000011, +0x0000000d,0x0000000f,0x0004003d,0x00000006, +0x00000012,0x00000011,0x00070050,0x00000007, +0x00000013,0x0000000a,0x0000000a,0x0000000a, +0x00000012,0x0003003e,0x00000009,0x00000013, +0x000100fd,0x00010038} diff --git a/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.vert b/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.vert index af607a76403a..5a0e895db8cf 100644 --- a/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.vert +++ b/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.vert @@ -6,6 +6,7 @@ layout(std140, set = 0, binding = 0) uniform UBO { float time; float yflip; + float alpha; } constants; float iqhash(float n) diff --git a/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.vert.inc b/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.vert.inc index 1d8c19bf0b52..0ee0e76a0bf8 100644 --- a/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.vert.inc +++ b/gfx/drivers/vulkan_shaders/pipeline_ribbon_simple.vert.inc @@ -1,4 +1,4 @@ -{0x07230203,0x00010000,0x000d0007,0x000000b9, +{0x07230203,0x00010000,0x000d000b,0x000000b9, 0x00000000,0x00020011,0x00000001,0x0006000b, 0x00000001,0x4c534c47,0x6474732e,0x3035342e, 0x00000000,0x0003000e,0x00000000,0x00000001, @@ -30,242 +30,245 @@ 0x00030005,0x00000083,0x004f4255,0x00050006, 0x00000083,0x00000000,0x656d6974,0x00000000, 0x00050006,0x00000083,0x00000001,0x696c6679, -0x00000070,0x00050005,0x00000085,0x736e6f63, -0x746e6174,0x00000073,0x00040005,0x0000009f, -0x61726170,0x0000006d,0x00060005,0x000000a7, -0x505f6c67,0x65567265,0x78657472,0x00000000, -0x00060006,0x000000a7,0x00000000,0x505f6c67, -0x7469736f,0x006e6f69,0x00070006,0x000000a7, -0x00000001,0x505f6c67,0x746e696f,0x657a6953, -0x00000000,0x00030005,0x000000a9,0x00000000, -0x00040047,0x00000077,0x0000001e,0x00000000, +0x00000070,0x00050006,0x00000083,0x00000002, +0x68706c61,0x00000061,0x00050005,0x00000085, +0x736e6f63,0x746e6174,0x00000073,0x00040005, +0x0000009f,0x61726170,0x0000006d,0x00060005, +0x000000a7,0x505f6c67,0x65567265,0x78657472, +0x00000000,0x00060006,0x000000a7,0x00000000, +0x505f6c67,0x7469736f,0x006e6f69,0x00070006, +0x000000a7,0x00000001,0x505f6c67,0x746e696f, +0x657a6953,0x00000000,0x00030005,0x000000a9, +0x00000000,0x00040047,0x00000077,0x0000001e, +0x00000000,0x00030047,0x00000083,0x00000002, 0x00050048,0x00000083,0x00000000,0x00000023, 0x00000000,0x00050048,0x00000083,0x00000001, -0x00000023,0x00000004,0x00030047,0x00000083, -0x00000002,0x00040047,0x00000085,0x00000022, -0x00000000,0x00040047,0x00000085,0x00000021, -0x00000000,0x00050048,0x000000a7,0x00000000, -0x0000000b,0x00000000,0x00050048,0x000000a7, -0x00000001,0x0000000b,0x00000001,0x00030047, -0x000000a7,0x00000002,0x00020013,0x00000002, -0x00030021,0x00000003,0x00000002,0x00030016, -0x00000006,0x00000020,0x00040020,0x00000007, -0x00000007,0x00000006,0x00040021,0x00000008, -0x00000006,0x00000007,0x00040017,0x0000000c, -0x00000006,0x00000003,0x00040020,0x0000000d, -0x00000007,0x0000000c,0x00040021,0x0000000e, -0x00000006,0x0000000d,0x0004002b,0x00000006, -0x00000014,0x472aee8c,0x0004002b,0x00000006, -0x00000022,0x40400000,0x0004002b,0x00000006, -0x00000023,0x40000000,0x00040015,0x0000002a, -0x00000020,0x00000000,0x0004002b,0x0000002a, -0x0000002b,0x00000000,0x0004002b,0x0000002a, -0x0000002e,0x00000001,0x0004002b,0x00000006, -0x00000031,0x42640000,0x0004002b,0x00000006, -0x00000034,0x42e20000,0x0004002b,0x0000002a, -0x00000035,0x00000002,0x0004002b,0x00000006, -0x0000003e,0x3f800000,0x0004002b,0x00000006, -0x0000004a,0x42680000,0x0004002b,0x00000006, -0x00000059,0x42e40000,0x0004002b,0x00000006, -0x00000061,0x432a0000,0x0004002b,0x00000006, -0x00000066,0x432b0000,0x00040020,0x00000076, -0x00000001,0x0000000c,0x0004003b,0x00000076, -0x00000077,0x00000001,0x00040020,0x00000078, -0x00000001,0x00000006,0x0004002b,0x00000006, -0x0000007b,0x00000000,0x0004001e,0x00000083, -0x00000006,0x00000006,0x00040020,0x00000084, -0x00000002,0x00000083,0x0004003b,0x00000084, -0x00000085,0x00000002,0x00040015,0x00000086, -0x00000020,0x00000001,0x0004002b,0x00000086, -0x00000087,0x00000000,0x00040020,0x00000088, -0x00000002,0x00000006,0x0004002b,0x00000006, -0x0000009d,0x41200000,0x0004002b,0x00000006, -0x000000a2,0x40800000,0x00040017,0x000000a6, -0x00000006,0x00000004,0x0004001e,0x000000a7, -0x000000a6,0x00000006,0x00040020,0x000000a8, -0x00000003,0x000000a7,0x0004003b,0x000000a8, -0x000000a9,0x00000003,0x00040020,0x000000af, -0x00000003,0x000000a6,0x0004002b,0x00000086, -0x000000b1,0x00000001,0x00040020,0x000000b4, -0x00000003,0x00000006,0x00050036,0x00000002, -0x00000004,0x00000000,0x00000003,0x000200f8, -0x00000005,0x0004003b,0x0000000d,0x00000075, -0x00000007,0x0004003b,0x0000000d,0x0000007f, -0x00000007,0x0004003b,0x0000000d,0x0000009f, -0x00000007,0x00050041,0x00000078,0x00000079, -0x00000077,0x0000002b,0x0004003d,0x00000006, -0x0000007a,0x00000079,0x00050041,0x00000078, -0x0000007c,0x00000077,0x0000002e,0x0004003d, -0x00000006,0x0000007d,0x0000007c,0x00060050, -0x0000000c,0x0000007e,0x0000007a,0x0000007b, -0x0000007d,0x0003003e,0x00000075,0x0000007e, -0x0004003d,0x0000000c,0x00000080,0x00000075, -0x0003003e,0x0000007f,0x00000080,0x00050041, -0x00000007,0x00000081,0x0000007f,0x0000002b, -0x0004003d,0x00000006,0x00000082,0x00000081, -0x00050041,0x00000088,0x00000089,0x00000085, -0x00000087,0x0004003d,0x00000006,0x0000008a, -0x00000089,0x00050088,0x00000006,0x0000008b, -0x0000008a,0x00000023,0x00050081,0x00000006, -0x0000008c,0x00000082,0x0000008b,0x00050041, -0x00000007,0x0000008d,0x0000007f,0x0000002b, -0x0003003e,0x0000008d,0x0000008c,0x00050041, -0x00000007,0x0000008e,0x00000075,0x00000035, -0x0004003d,0x00000006,0x0000008f,0x0000008e, -0x00050085,0x00000006,0x00000090,0x0000008f, -0x00000022,0x00050041,0x00000007,0x00000091, -0x0000007f,0x00000035,0x0003003e,0x00000091, -0x00000090,0x00050041,0x00000007,0x00000092, -0x00000075,0x0000002b,0x0004003d,0x00000006, -0x00000093,0x00000092,0x00050041,0x00000007, -0x00000094,0x00000075,0x00000035,0x0004003d, -0x00000006,0x00000095,0x00000094,0x00050088, -0x00000006,0x00000096,0x00000095,0x00000022, -0x00050081,0x00000006,0x00000097,0x00000093, -0x00000096,0x00050041,0x00000088,0x00000098, -0x00000085,0x00000087,0x0004003d,0x00000006, -0x00000099,0x00000098,0x00050081,0x00000006, -0x0000009a,0x00000097,0x00000099,0x00050085, -0x00000006,0x0000009b,0x0000009a,0x00000023, -0x0006000c,0x00000006,0x0000009c,0x00000001, -0x0000000e,0x0000009b,0x00050088,0x00000006, -0x0000009e,0x0000009c,0x0000009d,0x0004003d, -0x0000000c,0x000000a0,0x0000007f,0x0003003e, -0x0000009f,0x000000a0,0x00050039,0x00000006, -0x000000a1,0x00000010,0x0000009f,0x00050088, -0x00000006,0x000000a3,0x000000a1,0x000000a2, -0x00050081,0x00000006,0x000000a4,0x0000009e, -0x000000a3,0x00050041,0x00000007,0x000000a5, -0x00000075,0x0000002e,0x0003003e,0x000000a5, -0x000000a4,0x0004003d,0x0000000c,0x000000aa, -0x00000075,0x00050051,0x00000006,0x000000ab, -0x000000aa,0x00000000,0x00050051,0x00000006, -0x000000ac,0x000000aa,0x00000001,0x00050051, -0x00000006,0x000000ad,0x000000aa,0x00000002, -0x00070050,0x000000a6,0x000000ae,0x000000ab, -0x000000ac,0x000000ad,0x0000003e,0x00050041, -0x000000af,0x000000b0,0x000000a9,0x00000087, -0x0003003e,0x000000b0,0x000000ae,0x00050041, -0x00000088,0x000000b2,0x00000085,0x000000b1, -0x0004003d,0x00000006,0x000000b3,0x000000b2, -0x00060041,0x000000b4,0x000000b5,0x000000a9, -0x00000087,0x0000002e,0x0004003d,0x00000006, -0x000000b6,0x000000b5,0x00050085,0x00000006, -0x000000b7,0x000000b6,0x000000b3,0x00060041, -0x000000b4,0x000000b8,0x000000a9,0x00000087, -0x0000002e,0x0003003e,0x000000b8,0x000000b7, -0x000100fd,0x00010038,0x00050036,0x00000006, -0x0000000a,0x00000000,0x00000008,0x00030037, -0x00000007,0x00000009,0x000200f8,0x0000000b, -0x0004003d,0x00000006,0x00000012,0x00000009, -0x0006000c,0x00000006,0x00000013,0x00000001, -0x0000000d,0x00000012,0x00050085,0x00000006, -0x00000015,0x00000013,0x00000014,0x0006000c, -0x00000006,0x00000016,0x00000001,0x0000000a, -0x00000015,0x000200fe,0x00000016,0x00010038, -0x00050036,0x00000006,0x00000010,0x00000000, -0x0000000e,0x00030037,0x0000000d,0x0000000f, -0x000200f8,0x00000011,0x0004003b,0x0000000d, -0x00000019,0x00000007,0x0004003b,0x0000000d, -0x0000001c,0x00000007,0x0004003b,0x00000007, -0x00000029,0x00000007,0x0004003b,0x00000007, -0x0000003a,0x00000007,0x0004003b,0x00000007, -0x00000040,0x00000007,0x0004003b,0x00000007, -0x00000047,0x00000007,0x0004003b,0x00000007, -0x0000004c,0x00000007,0x0004003b,0x00000007, -0x00000056,0x00000007,0x0004003b,0x00000007, -0x0000005b,0x00000007,0x0004003b,0x00000007, -0x00000063,0x00000007,0x0004003b,0x00000007, -0x00000068,0x00000007,0x0004003d,0x0000000c, -0x0000001a,0x0000000f,0x0006000c,0x0000000c, -0x0000001b,0x00000001,0x00000008,0x0000001a, -0x0003003e,0x00000019,0x0000001b,0x0004003d, -0x0000000c,0x0000001d,0x0000000f,0x0006000c, -0x0000000c,0x0000001e,0x00000001,0x0000000a, -0x0000001d,0x0003003e,0x0000001c,0x0000001e, -0x0004003d,0x0000000c,0x0000001f,0x0000001c, -0x0004003d,0x0000000c,0x00000020,0x0000001c, -0x00050085,0x0000000c,0x00000021,0x0000001f, -0x00000020,0x0004003d,0x0000000c,0x00000024, -0x0000001c,0x0005008e,0x0000000c,0x00000025, -0x00000024,0x00000023,0x00060050,0x0000000c, -0x00000026,0x00000022,0x00000022,0x00000022, -0x00050083,0x0000000c,0x00000027,0x00000026, -0x00000025,0x00050085,0x0000000c,0x00000028, -0x00000021,0x00000027,0x0003003e,0x0000001c, -0x00000028,0x00050041,0x00000007,0x0000002c, -0x00000019,0x0000002b,0x0004003d,0x00000006, -0x0000002d,0x0000002c,0x00050041,0x00000007, -0x0000002f,0x00000019,0x0000002e,0x0004003d, -0x00000006,0x00000030,0x0000002f,0x00050085, -0x00000006,0x00000032,0x00000030,0x00000031, -0x00050081,0x00000006,0x00000033,0x0000002d, -0x00000032,0x00050041,0x00000007,0x00000036, -0x00000019,0x00000035,0x0004003d,0x00000006, -0x00000037,0x00000036,0x00050085,0x00000006, -0x00000038,0x00000034,0x00000037,0x00050081, -0x00000006,0x00000039,0x00000033,0x00000038, -0x0003003e,0x00000029,0x00000039,0x0004003d, -0x00000006,0x0000003b,0x00000029,0x0003003e, -0x0000003a,0x0000003b,0x00050039,0x00000006, -0x0000003c,0x0000000a,0x0000003a,0x0004003d, -0x00000006,0x0000003d,0x00000029,0x00050081, -0x00000006,0x0000003f,0x0000003d,0x0000003e, -0x0003003e,0x00000040,0x0000003f,0x00050039, -0x00000006,0x00000041,0x0000000a,0x00000040, -0x00050041,0x00000007,0x00000042,0x0000001c, -0x0000002b,0x0004003d,0x00000006,0x00000043, -0x00000042,0x0008000c,0x00000006,0x00000044, -0x00000001,0x0000002e,0x0000003c,0x00000041, -0x00000043,0x0004003d,0x00000006,0x00000045, -0x00000029,0x00050081,0x00000006,0x00000046, -0x00000045,0x00000031,0x0003003e,0x00000047, -0x00000046,0x00050039,0x00000006,0x00000048, -0x0000000a,0x00000047,0x0004003d,0x00000006, -0x00000049,0x00000029,0x00050081,0x00000006, -0x0000004b,0x00000049,0x0000004a,0x0003003e, -0x0000004c,0x0000004b,0x00050039,0x00000006, -0x0000004d,0x0000000a,0x0000004c,0x00050041, -0x00000007,0x0000004e,0x0000001c,0x0000002b, -0x0004003d,0x00000006,0x0000004f,0x0000004e, -0x0008000c,0x00000006,0x00000050,0x00000001, -0x0000002e,0x00000048,0x0000004d,0x0000004f, -0x00050041,0x00000007,0x00000051,0x0000001c, -0x0000002e,0x0004003d,0x00000006,0x00000052, -0x00000051,0x0008000c,0x00000006,0x00000053, -0x00000001,0x0000002e,0x00000044,0x00000050, -0x00000052,0x0004003d,0x00000006,0x00000054, -0x00000029,0x00050081,0x00000006,0x00000055, -0x00000054,0x00000034,0x0003003e,0x00000056, -0x00000055,0x00050039,0x00000006,0x00000057, -0x0000000a,0x00000056,0x0004003d,0x00000006, -0x00000058,0x00000029,0x00050081,0x00000006, -0x0000005a,0x00000058,0x00000059,0x0003003e, -0x0000005b,0x0000005a,0x00050039,0x00000006, -0x0000005c,0x0000000a,0x0000005b,0x00050041, -0x00000007,0x0000005d,0x0000001c,0x0000002b, -0x0004003d,0x00000006,0x0000005e,0x0000005d, -0x0008000c,0x00000006,0x0000005f,0x00000001, -0x0000002e,0x00000057,0x0000005c,0x0000005e, -0x0004003d,0x00000006,0x00000060,0x00000029, -0x00050081,0x00000006,0x00000062,0x00000060, -0x00000061,0x0003003e,0x00000063,0x00000062, -0x00050039,0x00000006,0x00000064,0x0000000a, -0x00000063,0x0004003d,0x00000006,0x00000065, -0x00000029,0x00050081,0x00000006,0x00000067, -0x00000065,0x00000066,0x0003003e,0x00000068, -0x00000067,0x00050039,0x00000006,0x00000069, -0x0000000a,0x00000068,0x00050041,0x00000007, -0x0000006a,0x0000001c,0x0000002b,0x0004003d, -0x00000006,0x0000006b,0x0000006a,0x0008000c, -0x00000006,0x0000006c,0x00000001,0x0000002e, -0x00000064,0x00000069,0x0000006b,0x00050041, -0x00000007,0x0000006d,0x0000001c,0x0000002e, -0x0004003d,0x00000006,0x0000006e,0x0000006d, -0x0008000c,0x00000006,0x0000006f,0x00000001, -0x0000002e,0x0000005f,0x0000006c,0x0000006e, -0x00050041,0x00000007,0x00000070,0x0000001c, -0x00000035,0x0004003d,0x00000006,0x00000071, -0x00000070,0x0008000c,0x00000006,0x00000072, -0x00000001,0x0000002e,0x00000053,0x0000006f, -0x00000071,0x000200fe,0x00000072,0x00010038} +0x00000023,0x00000004,0x00050048,0x00000083, +0x00000002,0x00000023,0x00000008,0x00040047, +0x00000085,0x00000021,0x00000000,0x00040047, +0x00000085,0x00000022,0x00000000,0x00030047, +0x000000a7,0x00000002,0x00050048,0x000000a7, +0x00000000,0x0000000b,0x00000000,0x00050048, +0x000000a7,0x00000001,0x0000000b,0x00000001, +0x00020013,0x00000002,0x00030021,0x00000003, +0x00000002,0x00030016,0x00000006,0x00000020, +0x00040020,0x00000007,0x00000007,0x00000006, +0x00040021,0x00000008,0x00000006,0x00000007, +0x00040017,0x0000000c,0x00000006,0x00000003, +0x00040020,0x0000000d,0x00000007,0x0000000c, +0x00040021,0x0000000e,0x00000006,0x0000000d, +0x0004002b,0x00000006,0x00000014,0x472aee8c, +0x0004002b,0x00000006,0x00000022,0x40400000, +0x0004002b,0x00000006,0x00000023,0x40000000, +0x00040015,0x0000002a,0x00000020,0x00000000, +0x0004002b,0x0000002a,0x0000002b,0x00000000, +0x0004002b,0x0000002a,0x0000002e,0x00000001, +0x0004002b,0x00000006,0x00000031,0x42640000, +0x0004002b,0x00000006,0x00000034,0x42e20000, +0x0004002b,0x0000002a,0x00000035,0x00000002, +0x0004002b,0x00000006,0x0000003e,0x3f800000, +0x0004002b,0x00000006,0x0000004a,0x42680000, +0x0004002b,0x00000006,0x00000059,0x42e40000, +0x0004002b,0x00000006,0x00000061,0x432a0000, +0x0004002b,0x00000006,0x00000066,0x432b0000, +0x00040020,0x00000076,0x00000001,0x0000000c, +0x0004003b,0x00000076,0x00000077,0x00000001, +0x00040020,0x00000078,0x00000001,0x00000006, +0x0004002b,0x00000006,0x0000007b,0x00000000, +0x0005001e,0x00000083,0x00000006,0x00000006, +0x00000006,0x00040020,0x00000084,0x00000002, +0x00000083,0x0004003b,0x00000084,0x00000085, +0x00000002,0x00040015,0x00000086,0x00000020, +0x00000001,0x0004002b,0x00000086,0x00000087, +0x00000000,0x00040020,0x00000088,0x00000002, +0x00000006,0x0004002b,0x00000006,0x0000009d, +0x41200000,0x0004002b,0x00000006,0x000000a2, +0x40800000,0x00040017,0x000000a6,0x00000006, +0x00000004,0x0004001e,0x000000a7,0x000000a6, +0x00000006,0x00040020,0x000000a8,0x00000003, +0x000000a7,0x0004003b,0x000000a8,0x000000a9, +0x00000003,0x00040020,0x000000af,0x00000003, +0x000000a6,0x0004002b,0x00000086,0x000000b1, +0x00000001,0x00040020,0x000000b4,0x00000003, +0x00000006,0x00050036,0x00000002,0x00000004, +0x00000000,0x00000003,0x000200f8,0x00000005, +0x0004003b,0x0000000d,0x00000075,0x00000007, +0x0004003b,0x0000000d,0x0000007f,0x00000007, +0x0004003b,0x0000000d,0x0000009f,0x00000007, +0x00050041,0x00000078,0x00000079,0x00000077, +0x0000002b,0x0004003d,0x00000006,0x0000007a, +0x00000079,0x00050041,0x00000078,0x0000007c, +0x00000077,0x0000002e,0x0004003d,0x00000006, +0x0000007d,0x0000007c,0x00060050,0x0000000c, +0x0000007e,0x0000007a,0x0000007b,0x0000007d, +0x0003003e,0x00000075,0x0000007e,0x0004003d, +0x0000000c,0x00000080,0x00000075,0x0003003e, +0x0000007f,0x00000080,0x00050041,0x00000007, +0x00000081,0x0000007f,0x0000002b,0x0004003d, +0x00000006,0x00000082,0x00000081,0x00050041, +0x00000088,0x00000089,0x00000085,0x00000087, +0x0004003d,0x00000006,0x0000008a,0x00000089, +0x00050088,0x00000006,0x0000008b,0x0000008a, +0x00000023,0x00050081,0x00000006,0x0000008c, +0x00000082,0x0000008b,0x00050041,0x00000007, +0x0000008d,0x0000007f,0x0000002b,0x0003003e, +0x0000008d,0x0000008c,0x00050041,0x00000007, +0x0000008e,0x00000075,0x00000035,0x0004003d, +0x00000006,0x0000008f,0x0000008e,0x00050085, +0x00000006,0x00000090,0x0000008f,0x00000022, +0x00050041,0x00000007,0x00000091,0x0000007f, +0x00000035,0x0003003e,0x00000091,0x00000090, +0x00050041,0x00000007,0x00000092,0x00000075, +0x0000002b,0x0004003d,0x00000006,0x00000093, +0x00000092,0x00050041,0x00000007,0x00000094, +0x00000075,0x00000035,0x0004003d,0x00000006, +0x00000095,0x00000094,0x00050088,0x00000006, +0x00000096,0x00000095,0x00000022,0x00050081, +0x00000006,0x00000097,0x00000093,0x00000096, +0x00050041,0x00000088,0x00000098,0x00000085, +0x00000087,0x0004003d,0x00000006,0x00000099, +0x00000098,0x00050081,0x00000006,0x0000009a, +0x00000097,0x00000099,0x00050085,0x00000006, +0x0000009b,0x0000009a,0x00000023,0x0006000c, +0x00000006,0x0000009c,0x00000001,0x0000000e, +0x0000009b,0x00050088,0x00000006,0x0000009e, +0x0000009c,0x0000009d,0x0004003d,0x0000000c, +0x000000a0,0x0000007f,0x0003003e,0x0000009f, +0x000000a0,0x00050039,0x00000006,0x000000a1, +0x00000010,0x0000009f,0x00050088,0x00000006, +0x000000a3,0x000000a1,0x000000a2,0x00050081, +0x00000006,0x000000a4,0x0000009e,0x000000a3, +0x00050041,0x00000007,0x000000a5,0x00000075, +0x0000002e,0x0003003e,0x000000a5,0x000000a4, +0x0004003d,0x0000000c,0x000000aa,0x00000075, +0x00050051,0x00000006,0x000000ab,0x000000aa, +0x00000000,0x00050051,0x00000006,0x000000ac, +0x000000aa,0x00000001,0x00050051,0x00000006, +0x000000ad,0x000000aa,0x00000002,0x00070050, +0x000000a6,0x000000ae,0x000000ab,0x000000ac, +0x000000ad,0x0000003e,0x00050041,0x000000af, +0x000000b0,0x000000a9,0x00000087,0x0003003e, +0x000000b0,0x000000ae,0x00050041,0x00000088, +0x000000b2,0x00000085,0x000000b1,0x0004003d, +0x00000006,0x000000b3,0x000000b2,0x00060041, +0x000000b4,0x000000b5,0x000000a9,0x00000087, +0x0000002e,0x0004003d,0x00000006,0x000000b6, +0x000000b5,0x00050085,0x00000006,0x000000b7, +0x000000b6,0x000000b3,0x00060041,0x000000b4, +0x000000b8,0x000000a9,0x00000087,0x0000002e, +0x0003003e,0x000000b8,0x000000b7,0x000100fd, +0x00010038,0x00050036,0x00000006,0x0000000a, +0x00000000,0x00000008,0x00030037,0x00000007, +0x00000009,0x000200f8,0x0000000b,0x0004003d, +0x00000006,0x00000012,0x00000009,0x0006000c, +0x00000006,0x00000013,0x00000001,0x0000000d, +0x00000012,0x00050085,0x00000006,0x00000015, +0x00000013,0x00000014,0x0006000c,0x00000006, +0x00000016,0x00000001,0x0000000a,0x00000015, +0x000200fe,0x00000016,0x00010038,0x00050036, +0x00000006,0x00000010,0x00000000,0x0000000e, +0x00030037,0x0000000d,0x0000000f,0x000200f8, +0x00000011,0x0004003b,0x0000000d,0x00000019, +0x00000007,0x0004003b,0x0000000d,0x0000001c, +0x00000007,0x0004003b,0x00000007,0x00000029, +0x00000007,0x0004003b,0x00000007,0x0000003a, +0x00000007,0x0004003b,0x00000007,0x00000040, +0x00000007,0x0004003b,0x00000007,0x00000047, +0x00000007,0x0004003b,0x00000007,0x0000004c, +0x00000007,0x0004003b,0x00000007,0x00000056, +0x00000007,0x0004003b,0x00000007,0x0000005b, +0x00000007,0x0004003b,0x00000007,0x00000063, +0x00000007,0x0004003b,0x00000007,0x00000068, +0x00000007,0x0004003d,0x0000000c,0x0000001a, +0x0000000f,0x0006000c,0x0000000c,0x0000001b, +0x00000001,0x00000008,0x0000001a,0x0003003e, +0x00000019,0x0000001b,0x0004003d,0x0000000c, +0x0000001d,0x0000000f,0x0006000c,0x0000000c, +0x0000001e,0x00000001,0x0000000a,0x0000001d, +0x0003003e,0x0000001c,0x0000001e,0x0004003d, +0x0000000c,0x0000001f,0x0000001c,0x0004003d, +0x0000000c,0x00000020,0x0000001c,0x00050085, +0x0000000c,0x00000021,0x0000001f,0x00000020, +0x0004003d,0x0000000c,0x00000024,0x0000001c, +0x0005008e,0x0000000c,0x00000025,0x00000024, +0x00000023,0x00060050,0x0000000c,0x00000026, +0x00000022,0x00000022,0x00000022,0x00050083, +0x0000000c,0x00000027,0x00000026,0x00000025, +0x00050085,0x0000000c,0x00000028,0x00000021, +0x00000027,0x0003003e,0x0000001c,0x00000028, +0x00050041,0x00000007,0x0000002c,0x00000019, +0x0000002b,0x0004003d,0x00000006,0x0000002d, +0x0000002c,0x00050041,0x00000007,0x0000002f, +0x00000019,0x0000002e,0x0004003d,0x00000006, +0x00000030,0x0000002f,0x00050085,0x00000006, +0x00000032,0x00000030,0x00000031,0x00050081, +0x00000006,0x00000033,0x0000002d,0x00000032, +0x00050041,0x00000007,0x00000036,0x00000019, +0x00000035,0x0004003d,0x00000006,0x00000037, +0x00000036,0x00050085,0x00000006,0x00000038, +0x00000034,0x00000037,0x00050081,0x00000006, +0x00000039,0x00000033,0x00000038,0x0003003e, +0x00000029,0x00000039,0x0004003d,0x00000006, +0x0000003b,0x00000029,0x0003003e,0x0000003a, +0x0000003b,0x00050039,0x00000006,0x0000003c, +0x0000000a,0x0000003a,0x0004003d,0x00000006, +0x0000003d,0x00000029,0x00050081,0x00000006, +0x0000003f,0x0000003d,0x0000003e,0x0003003e, +0x00000040,0x0000003f,0x00050039,0x00000006, +0x00000041,0x0000000a,0x00000040,0x00050041, +0x00000007,0x00000042,0x0000001c,0x0000002b, +0x0004003d,0x00000006,0x00000043,0x00000042, +0x0008000c,0x00000006,0x00000044,0x00000001, +0x0000002e,0x0000003c,0x00000041,0x00000043, +0x0004003d,0x00000006,0x00000045,0x00000029, +0x00050081,0x00000006,0x00000046,0x00000045, +0x00000031,0x0003003e,0x00000047,0x00000046, +0x00050039,0x00000006,0x00000048,0x0000000a, +0x00000047,0x0004003d,0x00000006,0x00000049, +0x00000029,0x00050081,0x00000006,0x0000004b, +0x00000049,0x0000004a,0x0003003e,0x0000004c, +0x0000004b,0x00050039,0x00000006,0x0000004d, +0x0000000a,0x0000004c,0x00050041,0x00000007, +0x0000004e,0x0000001c,0x0000002b,0x0004003d, +0x00000006,0x0000004f,0x0000004e,0x0008000c, +0x00000006,0x00000050,0x00000001,0x0000002e, +0x00000048,0x0000004d,0x0000004f,0x00050041, +0x00000007,0x00000051,0x0000001c,0x0000002e, +0x0004003d,0x00000006,0x00000052,0x00000051, +0x0008000c,0x00000006,0x00000053,0x00000001, +0x0000002e,0x00000044,0x00000050,0x00000052, +0x0004003d,0x00000006,0x00000054,0x00000029, +0x00050081,0x00000006,0x00000055,0x00000054, +0x00000034,0x0003003e,0x00000056,0x00000055, +0x00050039,0x00000006,0x00000057,0x0000000a, +0x00000056,0x0004003d,0x00000006,0x00000058, +0x00000029,0x00050081,0x00000006,0x0000005a, +0x00000058,0x00000059,0x0003003e,0x0000005b, +0x0000005a,0x00050039,0x00000006,0x0000005c, +0x0000000a,0x0000005b,0x00050041,0x00000007, +0x0000005d,0x0000001c,0x0000002b,0x0004003d, +0x00000006,0x0000005e,0x0000005d,0x0008000c, +0x00000006,0x0000005f,0x00000001,0x0000002e, +0x00000057,0x0000005c,0x0000005e,0x0004003d, +0x00000006,0x00000060,0x00000029,0x00050081, +0x00000006,0x00000062,0x00000060,0x00000061, +0x0003003e,0x00000063,0x00000062,0x00050039, +0x00000006,0x00000064,0x0000000a,0x00000063, +0x0004003d,0x00000006,0x00000065,0x00000029, +0x00050081,0x00000006,0x00000067,0x00000065, +0x00000066,0x0003003e,0x00000068,0x00000067, +0x00050039,0x00000006,0x00000069,0x0000000a, +0x00000068,0x00050041,0x00000007,0x0000006a, +0x0000001c,0x0000002b,0x0004003d,0x00000006, +0x0000006b,0x0000006a,0x0008000c,0x00000006, +0x0000006c,0x00000001,0x0000002e,0x00000064, +0x00000069,0x0000006b,0x00050041,0x00000007, +0x0000006d,0x0000001c,0x0000002e,0x0004003d, +0x00000006,0x0000006e,0x0000006d,0x0008000c, +0x00000006,0x0000006f,0x00000001,0x0000002e, +0x0000005f,0x0000006c,0x0000006e,0x00050041, +0x00000007,0x00000070,0x0000001c,0x00000035, +0x0004003d,0x00000006,0x00000071,0x00000070, +0x0008000c,0x00000006,0x00000072,0x00000001, +0x0000002e,0x00000053,0x0000006f,0x00000071, +0x000200fe,0x00000072,0x00010038} From 4b4d82e1e44f826d134829845eafb589d559ce11 Mon Sep 17 00:00:00 2001 From: MajorPainTheCactus Date: Sun, 15 Feb 2026 10:21:51 +0000 Subject: [PATCH 2/3] Vulkan: Fix HDR render pass mismatch and pipeline barrier Fix render pass / framebuffer format mismatch when rendering through the SDR offscreen buffer in HDR mode. The filter chain's final pass and the frame render pass were using vk->render_pass (A2B10G10R10) while the offscreen buffer framebuffer was created with vk->sdr_render_pass (B8G8R8A8), causing a Vulkan validation error. Select the correct render pass at frame time based on use_offscreen_buffer, and rebuild the filter chain's final pass pipeline to use the SDR render pass both at shader preset load and at swapchain recreation. Also fix an incorrect srcStageMask in the image layout transition after the HDR pipeline: SHADER_READ_BIT requires FRAGMENT_SHADER_BIT, not COLOR_ATTACHMENT_OUTPUT_BIT. --- gfx/drivers/vulkan.c | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/gfx/drivers/vulkan.c b/gfx/drivers/vulkan.c index 859a7f9e46b2..14f4578f0e1e 100644 --- a/gfx/drivers/vulkan.c +++ b/gfx/drivers/vulkan.c @@ -3307,6 +3307,20 @@ static bool vulkan_init_filter_chain_preset(vk_t *vk, const char *shader_path) vulkan_set_hdr_inverse_tonemap(vk, vk->filter_chain, !emits_hdr10); vulkan_set_hdr10(vk, vk->filter_chain, !emits_hdr10); vk->flags |= VK_FLAG_SHOULD_RESIZE; + + if (!emits_hdr10) + { + /* Rendering goes through the SDR offscreen buffer; + * rebuild the filter chain's final pass pipeline + * to use the SDR render pass. */ + struct vulkan_filter_chain_swapchain_info sdr_swapchain; + sdr_swapchain.vp = vk->vk_vp; + sdr_swapchain.format = vk->context->swapchain_format; + sdr_swapchain.render_pass = vk->sdr_render_pass; + sdr_swapchain.num_indices = vk->context->num_swapchain_images; + vulkan_filter_chain_update_swapchain_info( + vk->filter_chain, &sdr_swapchain); + } } else if (rt_format == VK_FORMAT_R16G16B16A16_SFLOAT) { @@ -4032,6 +4046,26 @@ static void vulkan_check_swapchain(vk_t *vk) filter_info.format = vk->context->swapchain_format; filter_info.render_pass = vk->render_pass; filter_info.num_indices = vk->context->num_swapchain_images; + +#ifdef VULKAN_HDR_SWAPCHAIN + /* When rendering through the SDR offscreen buffer, the filter chain's + * final pass must use the SDR render pass to match the framebuffer format. */ + if (vk->context->flags & VK_CTX_FLAG_HDR_ENABLE) + { + vulkan_filter_chain_t *chain = vk->filter_chain + ? vk->filter_chain : vk->filter_chain_default; + struct video_shader *preset = vulkan_filter_chain_get_preset(chain); + if (preset && preset->passes) + { + VkFormat rt_format = vulkan_filter_chain_get_pass_rt_format( + chain, preset->passes - 1); + if ( vulkan_is_hdr10_format(rt_format) + && !vulkan_filter_chain_emits_hdr10(chain)) + filter_info.render_pass = vk->sdr_render_pass; + } + } +#endif + if ( !vulkan_filter_chain_update_swapchain_info( (vk->filter_chain) ? vk->filter_chain : vk->filter_chain_default, @@ -5115,7 +5149,12 @@ static bool vulkan_frame(void *data, const void *frame, { rp_info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; rp_info.pNext = NULL; +#ifdef VULKAN_HDR_SWAPCHAIN + rp_info.renderPass = use_offscreen_buffer + ? vk->sdr_render_pass : vk->render_pass; +#else rp_info.renderPass = vk->render_pass; +#endif rp_info.framebuffer = backbuffer->framebuffer; rp_info.renderArea.offset.x = 0; rp_info.renderArea.offset.y = 0; @@ -5163,7 +5202,7 @@ static bool vulkan_frame(void *data, const void *frame, VULKAN_IMAGE_LAYOUT_TRANSITION(vk->cmd, vk->offscreen_buffer.image, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_ACCESS_SHADER_READ_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, - VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT); end_main_pass = false; From 5c5382a036e8292e2030eb3fb658aa89471f28ca Mon Sep 17 00:00:00 2001 From: MajorPainTheCactus Date: Sun, 15 Feb 2026 21:29:32 +0000 Subject: [PATCH 3/3] Vulkan/D3D12: Use BLEND_OP_MAX for alpha channel blending Change the alpha blend operation from ADD to MAX in the blend-enabled pipeline states for both Vulkan and D3D12. This ensures the render target alpha channel is always 1.0 (since the background establishes alpha=1.0 and max(src, 1.0) preserves it) while leaving RGB blending with SRC_ALPHA / ONE_MINUS_SRC_ALPHA completely unchanged. --- gfx/drivers/d3d12.c | 2 +- gfx/drivers/vulkan.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gfx/drivers/d3d12.c b/gfx/drivers/d3d12.c index f522a6dae743..3bd46903692e 100644 --- a/gfx/drivers/d3d12.c +++ b/gfx/drivers/d3d12.c @@ -456,7 +456,7 @@ static D3D12_RENDER_TARGET_BLEND_DESC d3d12_blend_enable_desc = { D3D12_BLEND_OP_ADD, D3D12_BLEND_SRC_ALPHA, D3D12_BLEND_INV_SRC_ALPHA, - D3D12_BLEND_OP_ADD, + D3D12_BLEND_OP_MAX, D3D12_LOGIC_OP_NOOP, D3D12_COLOR_WRITE_ENABLE_ALL, }; diff --git a/gfx/drivers/vulkan.c b/gfx/drivers/vulkan.c index 14f4578f0e1e..3fcf1141ee20 100644 --- a/gfx/drivers/vulkan.c +++ b/gfx/drivers/vulkan.c @@ -2628,7 +2628,7 @@ static void vulkan_init_pipelines(vk_t *vk) blend_attachment.colorBlendOp = VK_BLEND_OP_ADD; blend_attachment.srcAlphaBlendFactor = VK_BLEND_FACTOR_SRC_ALPHA; blend_attachment.dstAlphaBlendFactor = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA; - blend_attachment.alphaBlendOp = VK_BLEND_OP_ADD; + blend_attachment.alphaBlendOp = VK_BLEND_OP_MAX; /* Glyph pipeline */ module_info.codeSize = sizeof(font_frag);