Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 09706507cf | |||
| 1ccb591959 |
@@ -24,7 +24,6 @@ CMakeUserPresets.json
|
||||
*.bin
|
||||
*.out
|
||||
*.spv
|
||||
*.spv.h
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
|
||||
Vendored
+2
-2
@@ -41,8 +41,8 @@
|
||||
"LD_LIBRARY_PATH": "/home/caleb/.local/share/vulkan-sdk/1.4.357.1/x86_64/lib/VulkanLoader/lib:/home/caleb/.local/share/vulkan-sdk/1.4.357.1/x86_64/lib",
|
||||
"VK_ADD_LAYER_PATH": "/home/caleb/.local/share/vulkan-sdk/1.4.357.1/x86_64/share/vulkan/explicit_layer.d"
|
||||
},
|
||||
"cmake.buildDirectory": "${workspaceFolder}/build",
|
||||
"cmake.generator": "Ninja",
|
||||
"cmake.useCMakePresets": "always",
|
||||
"cmake.copyCompileCommands": "${workspaceFolder}/build/compile_commands.json",
|
||||
"cmake.configureOnOpen": true,
|
||||
"files.associations": {
|
||||
".clang-format": "yaml",
|
||||
|
||||
+1
-3
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.22.2)
|
||||
cmake_minimum_required(VERSION 3.25.2)
|
||||
|
||||
set(NAME sophia)
|
||||
|
||||
@@ -15,8 +15,6 @@ endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
message(STATUS "Debug build: enabling debug logging")
|
||||
else()
|
||||
add_compile_definitions(NDEBUG)
|
||||
endif()
|
||||
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"version": 6,
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "base",
|
||||
"hidden": true,
|
||||
"generator": "Ninja",
|
||||
"binaryDir": "${sourceDir}/build/${presetName}",
|
||||
"cacheVariables": {
|
||||
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "debug",
|
||||
"displayName": "Debug",
|
||||
"inherits": "base",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Debug"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "release",
|
||||
"displayName": "Release (with debug info)",
|
||||
"inherits": "base",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "asan",
|
||||
"displayName": "Debug + AddressSanitizer/UBSan",
|
||||
"inherits": "debug",
|
||||
"cacheVariables": {
|
||||
"CMAKE_CXX_FLAGS": "-fsanitize=address,undefined -fno-omit-frame-pointer",
|
||||
"CMAKE_C_FLAGS": "-fsanitize=address,undefined -fno-omit-frame-pointer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tsan",
|
||||
"displayName": "Debug + ThreadSanitizer",
|
||||
"inherits": "debug",
|
||||
"cacheVariables": {
|
||||
"CMAKE_CXX_FLAGS": "-fsanitize=thread",
|
||||
"CMAKE_C_FLAGS": "-fsanitize=thread"
|
||||
}
|
||||
}
|
||||
],
|
||||
"buildPresets": [
|
||||
{
|
||||
"name": "debug",
|
||||
"configurePreset": "debug"
|
||||
},
|
||||
{
|
||||
"name": "release",
|
||||
"configurePreset": "release"
|
||||
},
|
||||
{
|
||||
"name": "asan",
|
||||
"configurePreset": "asan"
|
||||
},
|
||||
{
|
||||
"name": "tsan",
|
||||
"configurePreset": "tsan"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -8,17 +8,21 @@ COMING SOON
|
||||
|
||||
### Dependencies
|
||||
|
||||
- [cmake](https://cmake.org/)
|
||||
- [cmake](https://cmake.org/) 3.25+
|
||||
- [Ninja](https://ninja-build.org/)
|
||||
- [Vulkan SDK](https://vulkan.lunarg.com/) - With validation layers
|
||||
|
||||
### Build instructions
|
||||
|
||||
Builds use the presets in `CMakePresets.json` (`debug`, `release`), each in its own `build/<preset>` directory:
|
||||
|
||||
```sh
|
||||
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
|
||||
cd build
|
||||
make -j
|
||||
cmake --preset debug
|
||||
cmake --build --preset debug
|
||||
```
|
||||
|
||||
Or with the dev helper: `dev build [preset] [--fresh]`.
|
||||
|
||||
## Third Party libraries used
|
||||
|
||||
- [GLFW](https://github.com/glfw/glfw) - Window and input handling
|
||||
|
||||
@@ -20,6 +20,7 @@ WAIT_FOR_PROCESS = "wait_for_process"
|
||||
class DevHelper:
|
||||
SHADER_EXTENSIONS = (".vert", ".frag", ".comp", ".geom", ".tesc", ".tese")
|
||||
PROJECT_NAME = "sophia"
|
||||
DEFAULT_PRESET = "debug"
|
||||
|
||||
def __init__(self):
|
||||
self.last_exit_status = 0
|
||||
@@ -39,9 +40,29 @@ class DevHelper:
|
||||
return method(*rest, **kwargs)
|
||||
|
||||
# Primary command wrappers
|
||||
|
||||
##
|
||||
# Configures and builds a CMake preset (see CMakePresets.json).
|
||||
# dev build [preset] [--fresh]
|
||||
# The preset defaults to debug and builds into build/<preset>. --fresh
|
||||
# discards the preset's CMake cache before configuring.
|
||||
def build(self, *args, **kwargs):
|
||||
command = f"rm -rf build && cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug"
|
||||
self._exec_in_root(command, replace=True)
|
||||
preset, fresh = self._parse_preset_args(args, "build")
|
||||
self._build_preset(preset, fresh)
|
||||
|
||||
##
|
||||
# Builds the debug preset (incrementally), then runs the testbed from
|
||||
# build/debug. Any arguments are passed through to the testbed.
|
||||
# dev testbed [args...]
|
||||
def testbed(self, *args, **kwargs):
|
||||
preset = self.DEFAULT_PRESET
|
||||
self._build_preset(preset, fresh=False)
|
||||
|
||||
preset_dir = os.path.join(self._project_root(), "build", preset)
|
||||
binary = os.path.join(preset_dir, "bin", "testbed")
|
||||
print(f"Running: {shlex.join([binary, *args])}")
|
||||
os.chdir(preset_dir)
|
||||
os.execv(binary, [binary, *args])
|
||||
|
||||
##
|
||||
# Checks out a branch named after a Gitea issue URL.
|
||||
@@ -149,6 +170,52 @@ class DevHelper:
|
||||
if not name.startswith("_") and name != "call" and callable(getattr(DevHelper, name))
|
||||
)
|
||||
|
||||
def _parse_preset_args(self, args, command):
|
||||
preset = None
|
||||
fresh = False
|
||||
for arg in args:
|
||||
if arg == "--fresh":
|
||||
fresh = True
|
||||
elif arg.startswith("-"):
|
||||
raise ValueError(f"Unknown option: {arg}")
|
||||
elif preset is None:
|
||||
preset = arg
|
||||
else:
|
||||
raise ValueError(f"Usage: dev {command} [preset] [--fresh]")
|
||||
|
||||
preset = preset or self.DEFAULT_PRESET
|
||||
presets = self._configure_presets()
|
||||
if preset not in presets:
|
||||
raise ValueError(f"Unknown preset: {preset} (available: {', '.join(presets)})")
|
||||
return preset, fresh
|
||||
|
||||
def _configure_presets(self):
|
||||
with open(os.path.join(self._project_root(), "CMakePresets.json")) as f:
|
||||
presets = json.load(f)["configurePresets"]
|
||||
return [preset["name"] for preset in presets if not preset.get("hidden")]
|
||||
|
||||
def _build_preset(self, preset, fresh):
|
||||
configure = ["cmake", "--preset", preset]
|
||||
if fresh:
|
||||
configure.append("--fresh")
|
||||
self._run_in_root(configure)
|
||||
self._copy_compile_commands(preset)
|
||||
self._run_in_root(["cmake", "--build", "--preset", preset])
|
||||
|
||||
# Editor tooling reads build/compile_commands.json, so point it at the
|
||||
# most recently configured preset.
|
||||
def _copy_compile_commands(self, preset):
|
||||
build_dir = os.path.join(self._project_root(), "build")
|
||||
source = os.path.join(build_dir, preset, "compile_commands.json")
|
||||
if os.path.isfile(source):
|
||||
shutil.copyfile(source, os.path.join(build_dir, "compile_commands.json"))
|
||||
|
||||
def _run_in_root(self, command):
|
||||
print(f"Running: {shlex.join(command)}")
|
||||
result = subprocess.run(command, cwd=self._project_root())
|
||||
if result.returncode != 0:
|
||||
sys.exit(result.returncode)
|
||||
|
||||
def _parse_issue_url(self, url):
|
||||
match = re.match(r"^(https?://[^/]+)/([^/]+)/([^/]+)/issues/(\d+)", url)
|
||||
if match is None:
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
#pragma once
|
||||
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
|
||||
namespace sophia::shaders {
|
||||
|
||||
inline constexpr std::array<uint32_t, 355> fullscreen_vert_spv = {
|
||||
0x07230203, 0x00010000, 0x000d000b, 0x00000032,
|
||||
0x00000000, 0x00020011, 0x00000001, 0x0006000b,
|
||||
0x00000001, 0x4c534c47, 0x6474732e, 0x3035342e,
|
||||
0x00000000, 0x0003000e, 0x00000000, 0x00000001,
|
||||
0x0008000f, 0x00000000, 0x00000004, 0x6e69616d,
|
||||
0x00000000, 0x00000018, 0x00000022, 0x0000002c,
|
||||
0x00030003, 0x00000002, 0x000001c2, 0x000a0004,
|
||||
0x475f4c47, 0x4c474f4f, 0x70635f45, 0x74735f70,
|
||||
0x5f656c79, 0x656e696c, 0x7269645f, 0x69746365,
|
||||
0x00006576, 0x00080004, 0x475f4c47, 0x4c474f4f,
|
||||
0x6e695f45, 0x64756c63, 0x69645f65, 0x74636572,
|
||||
0x00657669, 0x00040005, 0x00000004, 0x6e69616d,
|
||||
0x00000000, 0x00050005, 0x0000000c, 0x69736f70,
|
||||
0x6e6f6974, 0x00000073, 0x00030005, 0x00000015,
|
||||
0x00736f70, 0x00060005, 0x00000018, 0x565f6c67,
|
||||
0x65747265, 0x646e4978, 0x00007865, 0x00060005,
|
||||
0x00000020, 0x505f6c67, 0x65567265, 0x78657472,
|
||||
0x00000000, 0x00060006, 0x00000020, 0x00000000,
|
||||
0x505f6c67, 0x7469736f, 0x006e6f69, 0x00070006,
|
||||
0x00000020, 0x00000001, 0x505f6c67, 0x746e696f,
|
||||
0x657a6953, 0x00000000, 0x00070006, 0x00000020,
|
||||
0x00000002, 0x435f6c67, 0x4470696c, 0x61747369,
|
||||
0x0065636e, 0x00070006, 0x00000020, 0x00000003,
|
||||
0x435f6c67, 0x446c6c75, 0x61747369, 0x0065636e,
|
||||
0x00030005, 0x00000022, 0x00000000, 0x00030005,
|
||||
0x0000002c, 0x00007675, 0x00040047, 0x00000018,
|
||||
0x0000000b, 0x0000002a, 0x00030047, 0x00000020,
|
||||
0x00000002, 0x00050048, 0x00000020, 0x00000000,
|
||||
0x0000000b, 0x00000000, 0x00050048, 0x00000020,
|
||||
0x00000001, 0x0000000b, 0x00000001, 0x00050048,
|
||||
0x00000020, 0x00000002, 0x0000000b, 0x00000003,
|
||||
0x00050048, 0x00000020, 0x00000003, 0x0000000b,
|
||||
0x00000004, 0x00040047, 0x0000002c, 0x0000001e,
|
||||
0x00000000, 0x00020013, 0x00000002, 0x00030021,
|
||||
0x00000003, 0x00000002, 0x00030016, 0x00000006,
|
||||
0x00000020, 0x00040017, 0x00000007, 0x00000006,
|
||||
0x00000002, 0x00040015, 0x00000008, 0x00000020,
|
||||
0x00000000, 0x0004002b, 0x00000008, 0x00000009,
|
||||
0x00000006, 0x0004001c, 0x0000000a, 0x00000007,
|
||||
0x00000009, 0x00040020, 0x0000000b, 0x00000006,
|
||||
0x0000000a, 0x0004003b, 0x0000000b, 0x0000000c,
|
||||
0x00000006, 0x0004002b, 0x00000006, 0x0000000d,
|
||||
0xbf800000, 0x0005002c, 0x00000007, 0x0000000e,
|
||||
0x0000000d, 0x0000000d, 0x0004002b, 0x00000006,
|
||||
0x0000000f, 0x3f800000, 0x0005002c, 0x00000007,
|
||||
0x00000010, 0x0000000f, 0x0000000d, 0x0005002c,
|
||||
0x00000007, 0x00000011, 0x0000000d, 0x0000000f,
|
||||
0x0005002c, 0x00000007, 0x00000012, 0x0000000f,
|
||||
0x0000000f, 0x0009002c, 0x0000000a, 0x00000013,
|
||||
0x0000000e, 0x00000010, 0x00000011, 0x00000011,
|
||||
0x00000010, 0x00000012, 0x00040020, 0x00000014,
|
||||
0x00000007, 0x00000007, 0x00040015, 0x00000016,
|
||||
0x00000020, 0x00000001, 0x00040020, 0x00000017,
|
||||
0x00000001, 0x00000016, 0x0004003b, 0x00000017,
|
||||
0x00000018, 0x00000001, 0x00040020, 0x0000001a,
|
||||
0x00000006, 0x00000007, 0x00040017, 0x0000001d,
|
||||
0x00000006, 0x00000004, 0x0004002b, 0x00000008,
|
||||
0x0000001e, 0x00000001, 0x0004001c, 0x0000001f,
|
||||
0x00000006, 0x0000001e, 0x0006001e, 0x00000020,
|
||||
0x0000001d, 0x00000006, 0x0000001f, 0x0000001f,
|
||||
0x00040020, 0x00000021, 0x00000003, 0x00000020,
|
||||
0x0004003b, 0x00000021, 0x00000022, 0x00000003,
|
||||
0x0004002b, 0x00000016, 0x00000023, 0x00000000,
|
||||
0x0004002b, 0x00000006, 0x00000025, 0x00000000,
|
||||
0x00040020, 0x00000029, 0x00000003, 0x0000001d,
|
||||
0x00040020, 0x0000002b, 0x00000003, 0x00000007,
|
||||
0x0004003b, 0x0000002b, 0x0000002c, 0x00000003,
|
||||
0x0004002b, 0x00000006, 0x0000002e, 0x3f000000,
|
||||
0x00050036, 0x00000002, 0x00000004, 0x00000000,
|
||||
0x00000003, 0x000200f8, 0x00000005, 0x0004003b,
|
||||
0x00000014, 0x00000015, 0x00000007, 0x0003003e,
|
||||
0x0000000c, 0x00000013, 0x0004003d, 0x00000016,
|
||||
0x00000019, 0x00000018, 0x00050041, 0x0000001a,
|
||||
0x0000001b, 0x0000000c, 0x00000019, 0x0004003d,
|
||||
0x00000007, 0x0000001c, 0x0000001b, 0x0003003e,
|
||||
0x00000015, 0x0000001c, 0x0004003d, 0x00000007,
|
||||
0x00000024, 0x00000015, 0x00050051, 0x00000006,
|
||||
0x00000026, 0x00000024, 0x00000000, 0x00050051,
|
||||
0x00000006, 0x00000027, 0x00000024, 0x00000001,
|
||||
0x00070050, 0x0000001d, 0x00000028, 0x00000026,
|
||||
0x00000027, 0x00000025, 0x0000000f, 0x00050041,
|
||||
0x00000029, 0x0000002a, 0x00000022, 0x00000023,
|
||||
0x0003003e, 0x0000002a, 0x00000028, 0x0004003d,
|
||||
0x00000007, 0x0000002d, 0x00000015, 0x0005008e,
|
||||
0x00000007, 0x0000002f, 0x0000002d, 0x0000002e,
|
||||
0x00050050, 0x00000007, 0x00000030, 0x0000002e,
|
||||
0x0000002e, 0x00050081, 0x00000007, 0x00000031,
|
||||
0x0000002f, 0x00000030, 0x0003003e, 0x0000002c,
|
||||
0x00000031, 0x000100fd, 0x00010038,
|
||||
};
|
||||
|
||||
} // namespace sophia::shaders
|
||||
@@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
|
||||
namespace sophia::shaders {
|
||||
|
||||
inline constexpr std::array<uint32_t, 143> model_render_system_frag_spv = {
|
||||
0x07230203, 0x00010000, 0x000d000b, 0x00000013, 0x00000000, 0x00020011,
|
||||
0x00000001, 0x0006000b, 0x00000001, 0x4c534c47, 0x6474732e, 0x3035342e,
|
||||
0x00000000, 0x0003000e, 0x00000000, 0x00000001, 0x0007000f, 0x00000004,
|
||||
0x00000004, 0x6e69616d, 0x00000000, 0x00000009, 0x0000000c, 0x00030010,
|
||||
0x00000004, 0x00000007, 0x00030003, 0x00000002, 0x000001c2, 0x000a0004,
|
||||
0x475f4c47, 0x4c474f4f, 0x70635f45, 0x74735f70, 0x5f656c79, 0x656e696c,
|
||||
0x7269645f, 0x69746365, 0x00006576, 0x00080004, 0x475f4c47, 0x4c474f4f,
|
||||
0x6e695f45, 0x64756c63, 0x69645f65, 0x74636572, 0x00657669, 0x00040005,
|
||||
0x00000004, 0x6e69616d, 0x00000000, 0x00050005, 0x00000009, 0x4374756f,
|
||||
0x726f6c6f, 0x00000000, 0x00050005, 0x0000000c, 0x67617266, 0x6f6c6f43,
|
||||
0x00000072, 0x00040047, 0x00000009, 0x0000001e, 0x00000000, 0x00040047,
|
||||
0x0000000c, 0x0000001e, 0x00000000, 0x00020013, 0x00000002, 0x00030021,
|
||||
0x00000003, 0x00000002, 0x00030016, 0x00000006, 0x00000020, 0x00040017,
|
||||
0x00000007, 0x00000006, 0x00000004, 0x00040020, 0x00000008, 0x00000003,
|
||||
0x00000007, 0x0004003b, 0x00000008, 0x00000009, 0x00000003, 0x00040017,
|
||||
0x0000000a, 0x00000006, 0x00000003, 0x00040020, 0x0000000b, 0x00000001,
|
||||
0x0000000a, 0x0004003b, 0x0000000b, 0x0000000c, 0x00000001, 0x0004002b,
|
||||
0x00000006, 0x0000000e, 0x3f800000, 0x00050036, 0x00000002, 0x00000004,
|
||||
0x00000000, 0x00000003, 0x000200f8, 0x00000005, 0x0004003d, 0x0000000a,
|
||||
0x0000000d, 0x0000000c, 0x00050051, 0x00000006, 0x0000000f, 0x0000000d,
|
||||
0x00000000, 0x00050051, 0x00000006, 0x00000010, 0x0000000d, 0x00000001,
|
||||
0x00050051, 0x00000006, 0x00000011, 0x0000000d, 0x00000002, 0x00070050,
|
||||
0x00000007, 0x00000012, 0x0000000f, 0x00000010, 0x00000011, 0x0000000e,
|
||||
0x0003003e, 0x00000009, 0x00000012, 0x000100fd, 0x00010038,
|
||||
};
|
||||
|
||||
} // namespace sophia::shaders
|
||||
@@ -0,0 +1,69 @@
|
||||
#pragma once
|
||||
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
|
||||
namespace sophia::shaders {
|
||||
|
||||
inline constexpr std::array<uint32_t, 345> model_render_system_vert_spv = {
|
||||
0x07230203, 0x00010000, 0x000d000b, 0x00000029, 0x00000000, 0x00020011,
|
||||
0x00000001, 0x0006000b, 0x00000001, 0x4c534c47, 0x6474732e, 0x3035342e,
|
||||
0x00000000, 0x0003000e, 0x00000000, 0x00000001, 0x0009000f, 0x00000000,
|
||||
0x00000004, 0x6e69616d, 0x00000000, 0x0000000d, 0x00000019, 0x00000025,
|
||||
0x00000027, 0x00030003, 0x00000002, 0x000001c2, 0x000a0004, 0x475f4c47,
|
||||
0x4c474f4f, 0x70635f45, 0x74735f70, 0x5f656c79, 0x656e696c, 0x7269645f,
|
||||
0x69746365, 0x00006576, 0x00080004, 0x475f4c47, 0x4c474f4f, 0x6e695f45,
|
||||
0x64756c63, 0x69645f65, 0x74636572, 0x00657669, 0x00040005, 0x00000004,
|
||||
0x6e69616d, 0x00000000, 0x00060005, 0x0000000b, 0x505f6c67, 0x65567265,
|
||||
0x78657472, 0x00000000, 0x00060006, 0x0000000b, 0x00000000, 0x505f6c67,
|
||||
0x7469736f, 0x006e6f69, 0x00070006, 0x0000000b, 0x00000001, 0x505f6c67,
|
||||
0x746e696f, 0x657a6953, 0x00000000, 0x00070006, 0x0000000b, 0x00000002,
|
||||
0x435f6c67, 0x4470696c, 0x61747369, 0x0065636e, 0x00070006, 0x0000000b,
|
||||
0x00000003, 0x435f6c67, 0x446c6c75, 0x61747369, 0x0065636e, 0x00030005,
|
||||
0x0000000d, 0x00000000, 0x00040005, 0x00000011, 0x68737550, 0x00000000,
|
||||
0x00060006, 0x00000011, 0x00000000, 0x6e617274, 0x726f6673, 0x0000006d,
|
||||
0x00050006, 0x00000011, 0x00000001, 0x6f6c6f63, 0x00000072, 0x00040005,
|
||||
0x00000013, 0x68737570, 0x00000000, 0x00050005, 0x00000019, 0x69736f70,
|
||||
0x6e6f6974, 0x00000000, 0x00050005, 0x00000025, 0x67617266, 0x6f6c6f43,
|
||||
0x00000072, 0x00040005, 0x00000027, 0x6f6c6f63, 0x00000072, 0x00030047,
|
||||
0x0000000b, 0x00000002, 0x00050048, 0x0000000b, 0x00000000, 0x0000000b,
|
||||
0x00000000, 0x00050048, 0x0000000b, 0x00000001, 0x0000000b, 0x00000001,
|
||||
0x00050048, 0x0000000b, 0x00000002, 0x0000000b, 0x00000003, 0x00050048,
|
||||
0x0000000b, 0x00000003, 0x0000000b, 0x00000004, 0x00030047, 0x00000011,
|
||||
0x00000002, 0x00040048, 0x00000011, 0x00000000, 0x00000005, 0x00050048,
|
||||
0x00000011, 0x00000000, 0x00000007, 0x00000010, 0x00050048, 0x00000011,
|
||||
0x00000000, 0x00000023, 0x00000000, 0x00050048, 0x00000011, 0x00000001,
|
||||
0x00000023, 0x00000040, 0x00040047, 0x00000019, 0x0000001e, 0x00000000,
|
||||
0x00040047, 0x00000025, 0x0000001e, 0x00000000, 0x00040047, 0x00000027,
|
||||
0x0000001e, 0x00000001, 0x00020013, 0x00000002, 0x00030021, 0x00000003,
|
||||
0x00000002, 0x00030016, 0x00000006, 0x00000020, 0x00040017, 0x00000007,
|
||||
0x00000006, 0x00000004, 0x00040015, 0x00000008, 0x00000020, 0x00000000,
|
||||
0x0004002b, 0x00000008, 0x00000009, 0x00000001, 0x0004001c, 0x0000000a,
|
||||
0x00000006, 0x00000009, 0x0006001e, 0x0000000b, 0x00000007, 0x00000006,
|
||||
0x0000000a, 0x0000000a, 0x00040020, 0x0000000c, 0x00000003, 0x0000000b,
|
||||
0x0004003b, 0x0000000c, 0x0000000d, 0x00000003, 0x00040015, 0x0000000e,
|
||||
0x00000020, 0x00000001, 0x0004002b, 0x0000000e, 0x0000000f, 0x00000000,
|
||||
0x00040018, 0x00000010, 0x00000007, 0x00000004, 0x0004001e, 0x00000011,
|
||||
0x00000010, 0x00000007, 0x00040020, 0x00000012, 0x00000009, 0x00000011,
|
||||
0x0004003b, 0x00000012, 0x00000013, 0x00000009, 0x00040020, 0x00000014,
|
||||
0x00000009, 0x00000010, 0x00040017, 0x00000017, 0x00000006, 0x00000002,
|
||||
0x00040020, 0x00000018, 0x00000001, 0x00000017, 0x0004003b, 0x00000018,
|
||||
0x00000019, 0x00000001, 0x0004002b, 0x00000006, 0x0000001b, 0x00000000,
|
||||
0x0004002b, 0x00000006, 0x0000001c, 0x3f800000, 0x00040020, 0x00000021,
|
||||
0x00000003, 0x00000007, 0x00040017, 0x00000023, 0x00000006, 0x00000003,
|
||||
0x00040020, 0x00000024, 0x00000003, 0x00000023, 0x0004003b, 0x00000024,
|
||||
0x00000025, 0x00000003, 0x00040020, 0x00000026, 0x00000001, 0x00000023,
|
||||
0x0004003b, 0x00000026, 0x00000027, 0x00000001, 0x00050036, 0x00000002,
|
||||
0x00000004, 0x00000000, 0x00000003, 0x000200f8, 0x00000005, 0x00050041,
|
||||
0x00000014, 0x00000015, 0x00000013, 0x0000000f, 0x0004003d, 0x00000010,
|
||||
0x00000016, 0x00000015, 0x0004003d, 0x00000017, 0x0000001a, 0x00000019,
|
||||
0x00050051, 0x00000006, 0x0000001d, 0x0000001a, 0x00000000, 0x00050051,
|
||||
0x00000006, 0x0000001e, 0x0000001a, 0x00000001, 0x00070050, 0x00000007,
|
||||
0x0000001f, 0x0000001d, 0x0000001e, 0x0000001b, 0x0000001c, 0x00050091,
|
||||
0x00000007, 0x00000020, 0x00000016, 0x0000001f, 0x00050041, 0x00000021,
|
||||
0x00000022, 0x0000000d, 0x0000000f, 0x0003003e, 0x00000022, 0x00000020,
|
||||
0x0004003d, 0x00000023, 0x00000028, 0x00000027, 0x0003003e, 0x00000025,
|
||||
0x00000028, 0x000100fd, 0x00010038,
|
||||
};
|
||||
|
||||
} // namespace sophia::shaders
|
||||
Reference in New Issue
Block a user