From b01f6cd7ea173488834d0b2d5bfe07e11f62610c Mon Sep 17 00:00:00 2001 From: Triang3l Date: Mon, 26 Aug 2019 23:43:05 +0300 Subject: [PATCH] [Vulkan v2] Add immediate shader SPIR-V code --- src/xenia/ui/vk/shaders/bin/immediate_frag.h | 44 ++++++ .../ui/vk/shaders/bin/immediate_frag.spv | Bin 0 -> 476 bytes .../ui/vk/shaders/bin/immediate_frag.txt | 35 +++++ src/xenia/ui/vk/shaders/bin/immediate_vert.h | 126 ++++++++++++++++++ .../ui/vk/shaders/bin/immediate_vert.spv | Bin 0 -> 1460 bytes .../ui/vk/shaders/bin/immediate_vert.txt | 86 ++++++++++++ 6 files changed, 291 insertions(+) create mode 100644 src/xenia/ui/vk/shaders/bin/immediate_frag.h create mode 100644 src/xenia/ui/vk/shaders/bin/immediate_frag.spv create mode 100644 src/xenia/ui/vk/shaders/bin/immediate_frag.txt create mode 100644 src/xenia/ui/vk/shaders/bin/immediate_vert.h create mode 100644 src/xenia/ui/vk/shaders/bin/immediate_vert.spv create mode 100644 src/xenia/ui/vk/shaders/bin/immediate_vert.txt diff --git a/src/xenia/ui/vk/shaders/bin/immediate_frag.h b/src/xenia/ui/vk/shaders/bin/immediate_frag.h new file mode 100644 index 000000000..1b78ab75c --- /dev/null +++ b/src/xenia/ui/vk/shaders/bin/immediate_frag.h @@ -0,0 +1,44 @@ +// generated from `xb genspirv` +// source: immediate.frag +const uint8_t immediate_frag[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x08, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x4C, 0x53, 0x4C, 0x2E, 0x73, 0x74, 0x64, 0x2E, 0x34, 0x35, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xC2, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x69, 0x6E, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x78, 0x65, 0x5F, 0x6F, 0x75, 0x74, 0x5F, 0x63, 0x6F, 0x6C, 0x6F, 0x72, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0B, 0x00, 0x00, 0x00, + 0x78, 0x65, 0x5F, 0x69, 0x6E, 0x5F, 0x63, 0x6F, 0x6C, 0x6F, 0x72, 0x00, + 0x05, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x69, + 0x6E, 0x5F, 0x74, 0x65, 0x78, 0x63, 0x6F, 0x6F, 0x72, 0x64, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, + 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x3B, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, + 0x3B, 0x00, 0x04, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xF8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, + 0x3E, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, + 0xFD, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, +}; diff --git a/src/xenia/ui/vk/shaders/bin/immediate_frag.spv b/src/xenia/ui/vk/shaders/bin/immediate_frag.spv new file mode 100644 index 0000000000000000000000000000000000000000..8a4c6e437bc7c277fcdf554cb119eaf76eeef100 GIT binary patch literal 476 zcmYk1!AgQr5QQiIelsmKg4&7FURr1fQQJ1|dH@M^A(R*N4}89!s!h=MT@}1AckVee zbLQNl_HYq#7WHUEH}>ZyYA_KkSo7QTeLCD$i{WVeXh%B=Q?7NGJLheDeXQ2Ng!CG6=;$u8%1%USxaX7lu!HbDBytOdVXA832k-gDJ*H&1D^z$c1o z^c>`f^&!sx06TZA-{M9;gX}Ew`;K=Vu20<4uWzwl``it(zn6bLV0X${Z<5`0tc&#^ ur`|PLJ@?w*CR>wNPpn6|C;o1qyFKpsg(=A|uzh{;=c44~Fe|XHNtPt{B@ZNzB)gKfel6)gDjF%{d`_ghsC1ks!?gOGR!w>) zDAw`V_{utKva%36Yvbw9@>$UwWZzTbf{(l8+sm`@hpcW6i%~lDF#*0wo=<&|`lELa z{V>B>nq);X4%b@#y7({Ya8iHWD+}s2wW2!)o^zU|-^OLtDDyO_T~m?zU6oJu#!5^^ z(@b|4yOOV*G>Il3m1T8g?_z(hhbe7&cIx9tWnNZ-;v>6f7w_ng;@k`Ip6&$By|H`8 zz_Byp*iYcF;drlsJlMny#IU2TghPDTLC;Y(9xlW)XNV`C`M~x&6K1aSnC}Km{<8kj zo9cm{uvcZxNXL>jY)AP0#=Gcia*t5B|63 z)@8%9pP!!FkPS~ypTx1hO$j_FaCc?HF~?BTF<(zYEWTL6JoLy;wj_Kb^!P?ofr$_O bK9tQK@v&bpKI%S}urqw@7W_{)zm)t3bZl~{ literal 0 HcmV?d00001 diff --git a/src/xenia/ui/vk/shaders/bin/immediate_vert.txt b/src/xenia/ui/vk/shaders/bin/immediate_vert.txt new file mode 100644 index 000000000..90c5364e3 --- /dev/null +++ b/src/xenia/ui/vk/shaders/bin/immediate_vert.txt @@ -0,0 +1,86 @@ +; SPIR-V +; Version: 1.0 +; Generator: Khronos Glslang Reference Front End; 6 +; Bound: 47 +; Schema: 0 + OpCapability Shader + %1 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %main "main" %_ %xe_in_position %xe_out_texcoord %xe_in_texcoord %xe_out_color %xe_in_color + OpSource GLSL 450 + OpName %main "main" + OpName %gl_PerVertex "gl_PerVertex" + OpMemberName %gl_PerVertex 0 "gl_Position" + OpMemberName %gl_PerVertex 1 "gl_PointSize" + OpMemberName %gl_PerVertex 2 "gl_ClipDistance" + OpMemberName %gl_PerVertex 3 "gl_CullDistance" + OpName %_ "" + OpName %xe_in_position "xe_in_position" + OpName %XePushConstants "XePushConstants" + OpMemberName %XePushConstants 0 "viewport_inv_size" + OpName %xe_push_constants "xe_push_constants" + OpName %xe_out_texcoord "xe_out_texcoord" + OpName %xe_in_texcoord "xe_in_texcoord" + OpName %xe_out_color "xe_out_color" + OpName %xe_in_color "xe_in_color" + OpMemberDecorate %gl_PerVertex 0 BuiltIn Position + OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize + OpMemberDecorate %gl_PerVertex 2 BuiltIn ClipDistance + OpMemberDecorate %gl_PerVertex 3 BuiltIn CullDistance + OpDecorate %gl_PerVertex Block + OpDecorate %xe_in_position Location 0 + OpMemberDecorate %XePushConstants 0 Offset 0 + OpDecorate %XePushConstants Block + OpDecorate %xe_out_texcoord Location 0 + OpDecorate %xe_in_texcoord Location 1 + OpDecorate %xe_out_color Location 1 + OpDecorate %xe_in_color Location 2 + %void = OpTypeVoid + %3 = OpTypeFunction %void + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 + %uint = OpTypeInt 32 0 + %uint_1 = OpConstant %uint 1 +%_arr_float_uint_1 = OpTypeArray %float %uint_1 +%gl_PerVertex = OpTypeStruct %v4float %float %_arr_float_uint_1 %_arr_float_uint_1 +%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex + %_ = OpVariable %_ptr_Output_gl_PerVertex Output + %int = OpTypeInt 32 1 + %int_0 = OpConstant %int 0 + %v2float = OpTypeVector %float 2 +%_ptr_Input_v2float = OpTypePointer Input %v2float +%xe_in_position = OpVariable %_ptr_Input_v2float Input +%XePushConstants = OpTypeStruct %v2float +%_ptr_PushConstant_XePushConstants = OpTypePointer PushConstant %XePushConstants +%xe_push_constants = OpVariable %_ptr_PushConstant_XePushConstants PushConstant +%_ptr_PushConstant_v2float = OpTypePointer PushConstant %v2float + %float_2 = OpConstant %float 2 + %float_1 = OpConstant %float 1 + %float_0 = OpConstant %float 0 +%_ptr_Output_v4float = OpTypePointer Output %v4float +%_ptr_Output_v2float = OpTypePointer Output %v2float +%xe_out_texcoord = OpVariable %_ptr_Output_v2float Output +%xe_in_texcoord = OpVariable %_ptr_Input_v2float Input +%xe_out_color = OpVariable %_ptr_Output_v4float Output +%_ptr_Input_v4float = OpTypePointer Input %v4float +%xe_in_color = OpVariable %_ptr_Input_v4float Input + %46 = OpConstantComposite %v2float %float_1 %float_1 + %main = OpFunction %void None %3 + %5 = OpLabel + %19 = OpLoad %v2float %xe_in_position + %24 = OpAccessChain %_ptr_PushConstant_v2float %xe_push_constants %int_0 + %25 = OpLoad %v2float %24 + %26 = OpFMul %v2float %19 %25 + %28 = OpVectorTimesScalar %v2float %26 %float_2 + %31 = OpFSub %v2float %28 %46 + %33 = OpCompositeExtract %float %31 0 + %34 = OpCompositeExtract %float %31 1 + %35 = OpCompositeConstruct %v4float %33 %34 %float_0 %float_1 + %37 = OpAccessChain %_ptr_Output_v4float %_ %int_0 + OpStore %37 %35 + %41 = OpLoad %v2float %xe_in_texcoord + OpStore %xe_out_texcoord %41 + %45 = OpLoad %v4float %xe_in_color + OpStore %xe_out_color %45 + OpReturn + OpFunctionEnd