mirror of
https://github.com/lighttransport/tinyusdz.git
synced 2026-01-18 01:11:17 +01:00
Experimental: Vulkan tool build script.
This commit is contained in:
14
sandbox/vulkan/README.md
Normal file
14
sandbox/vulkan/README.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Setup Vulkan Loaders and Vulkan Validation layers
|
||||
|
||||
## Linux
|
||||
|
||||
```
|
||||
$ bash build-vulkan-tools-linux.sh
|
||||
```
|
||||
|
||||
Files will be installed to `dist` directory.
|
||||
|
||||
## Windows, macOS, Android
|
||||
|
||||
T.B.W.
|
||||
|
||||
65
sandbox/vulkan/build-vulkan-tools-linux.sh
Normal file
65
sandbox/vulkan/build-vulkan-tools-linux.sh
Normal file
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Asssume Cmake 3.20+
|
||||
|
||||
|
||||
glslang_dist_dir=`pwd`/dist
|
||||
vk_header_dist_dir=`pwd`/dist
|
||||
vk_loader_dist_dir=`pwd`/dist
|
||||
|
||||
function build_vk_headers() {
|
||||
git clone https://github.com/KhronosGroup/Vulkan-Headers
|
||||
|
||||
rm -rf vk_header_build
|
||||
mkdir vk_header_build
|
||||
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${vk_header_dist_dir}" -B vk_header_build Vulkan-Headers
|
||||
cmake --build vk_header_build --config Release
|
||||
cmake --build vk_header_build --config Release --target install
|
||||
}
|
||||
|
||||
|
||||
function build_validation_layer() {
|
||||
git clone https://github.com/KhronosGroup/Vulkan-ValidationLayers.git
|
||||
|
||||
cd Vulkan-ValidationLayers
|
||||
|
||||
rm -rf build
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
python3 ../scripts/update_deps.py --dir ../external --arch x64 --config debug
|
||||
|
||||
cmake -G Ninja -C ../external/helper.cmake -DCMAKE_BUILD_TYPE=Debug ..
|
||||
|
||||
cmake --build . --config Debug
|
||||
|
||||
}
|
||||
|
||||
function build_glslang() {
|
||||
git clone https://github.com/KhronosGroup/glslang.git
|
||||
|
||||
rm -rf glslang_build
|
||||
mkdir glslang_build
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${glslang_dist_dir}" -B glslang_build glslang
|
||||
cmake --build glslang_build --config Release
|
||||
cmake --build glslang_build --config Release --target install
|
||||
}
|
||||
|
||||
function build_vk_loader() {
|
||||
|
||||
rm -rf vk_loader_build
|
||||
mkdir vk_loader_build
|
||||
|
||||
git clone https://github.com/KhronosGroup/Vulkan-Loader.git
|
||||
|
||||
cmake -S Vulkan-Loader -B vk_loader_build -DCMAKE_INSTALL_PREFIX="${vk_loader_dist_dir}" -DUPDATE_DEPS=On
|
||||
cmake --build vk_loader_build
|
||||
cmake --build vk_loader_build --config Debug
|
||||
cmake --build vk_loader_build --config Debug --target install
|
||||
}
|
||||
|
||||
build_vk_headers
|
||||
build_validation_layer
|
||||
build_glslang
|
||||
build_vk_loader
|
||||
@@ -30,6 +30,30 @@ using vec3 = value::float3;
|
||||
using vec4 = value::float4;
|
||||
using mat2 = value::matrix2f; // float precision
|
||||
|
||||
// Simple string <-> id map
|
||||
struct StringAndIdMap {
|
||||
void add(uint64_t key, const std::string &val) {
|
||||
_i_to_s[key] = val;
|
||||
_s_to_i[val] = key;
|
||||
}
|
||||
|
||||
void add(const std::string &key, uint64_t val) {
|
||||
_s_to_i[key] = val;
|
||||
_i_to_s[val] = key;
|
||||
}
|
||||
|
||||
size_t count(uint64_t i) const { return _i_to_s.count(i); }
|
||||
|
||||
size_t count(const std::string &s) const { return _s_to_i.count(s); }
|
||||
|
||||
std::string at(uint64_t i) const { return _i_to_s.at(i); }
|
||||
|
||||
uint64_t at(std::string s) const { return _s_to_i.at(s); }
|
||||
|
||||
std::map<uint64_t, std::string> _i_to_s; // index -> string
|
||||
std::map<std::string, uint64_t> _s_to_i; // string -> index
|
||||
};
|
||||
|
||||
enum class VertexVariability
|
||||
{
|
||||
//Constant,
|
||||
@@ -256,6 +280,9 @@ std::vector<UsdPrimvarReader_float2> ExtractPrimvarReadersFromMaterialNode(const
|
||||
bool ConvertMaterial(
|
||||
const Stage &stage,
|
||||
const tinyusdz::Material &material,
|
||||
StringAndIdMap materialMap, // [inout]
|
||||
StringAndIdMap textureMap, // [inout]
|
||||
StringAndIdMap imageMap, // [inout]
|
||||
std::vector<RenderMaterial> &materials, // [input]
|
||||
std::vector<UVTexture> &textures, // [inout]
|
||||
std::vector<LDRImage> &images); // [inout]
|
||||
|
||||
Reference in New Issue
Block a user