Compare commits
2 Commits
f9332d9047
...
be3d1d21e7
| Author | SHA1 | Date | |
|---|---|---|---|
| be3d1d21e7 | |||
| 283c937b10 |
Vendored
+1
-1
@@ -8,7 +8,7 @@
|
||||
"preLaunchTask": "Build",
|
||||
"expressions": "native",
|
||||
"cwd": "${workspaceFolder}",
|
||||
"program": "${workspaceFolder}/build/evk"
|
||||
"program": "${workspaceFolder}/build/samples/descriptor_heap/descriptor_heap"
|
||||
}
|
||||
]
|
||||
}
|
||||
Vendored
+1
-1
@@ -23,7 +23,7 @@
|
||||
{
|
||||
"label": "Run",
|
||||
"type": "shell",
|
||||
"command": "./build/evk",
|
||||
"command": "./build/samples/descriptor_heap/descriptor_heap",
|
||||
"windows": {
|
||||
"command": "build/evk.exe"
|
||||
},
|
||||
|
||||
+2
-2
@@ -18,11 +18,11 @@ evkBuffer evkCreateBuffer(evkDevice* device, evkBufferCreateInfo createInfo)
|
||||
|
||||
if(buffer.vk != VK_NULL_HANDLE)
|
||||
{
|
||||
buffer.sizeInBytes = createInfo.sizeInBytes;
|
||||
buffer.address = vkGetBufferDeviceAddressKHR(device->vk, &(VkBufferDeviceAddressInfo){
|
||||
buffer.addressRange.address = vkGetBufferDeviceAddressKHR(device->vk, &(VkBufferDeviceAddressInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
|
||||
.buffer = buffer.vk
|
||||
});
|
||||
buffer.addressRange.size = createInfo.sizeInBytes;
|
||||
}
|
||||
|
||||
return buffer;
|
||||
|
||||
+3
-3
@@ -137,8 +137,8 @@ void evkSetDescriptor(evkDescriptorSet* set, evstring name, evkBuffer* buf)
|
||||
|
||||
VkDescriptorAddressInfoEXT addressInfo = {
|
||||
VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT,
|
||||
.address = buf->address,
|
||||
.range = buf->sizeInBytes,
|
||||
.address = buf->addressRange.address,
|
||||
.range = buf->addressRange.size,
|
||||
.format = VK_FORMAT_UNDEFINED,
|
||||
};
|
||||
|
||||
@@ -168,7 +168,7 @@ void evkCmdBindDescriptorSets(evkCommandBuffer* cmdbuf, evkPipeline* pipeline, v
|
||||
{
|
||||
bindingInfos[i] = (VkDescriptorBufferBindingInfoEXT) {
|
||||
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT,
|
||||
.address = sets[setIndices[i]].buffer.address,
|
||||
.address = sets[setIndices[i]].buffer.addressRange.address,
|
||||
.usage = sets[setIndices[i]].buffer.usage,
|
||||
};
|
||||
setOffsets[i] = offset;
|
||||
|
||||
@@ -27,6 +27,25 @@ VkPhysicalDeviceDescriptorBufferFeaturesEXT descriptorBufFeature = {
|
||||
// )
|
||||
};
|
||||
|
||||
VkPhysicalDeviceDescriptorHeapFeaturesEXT descriptorHeapFeature = {
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT,
|
||||
.descriptorHeap = VK_TRUE,
|
||||
|
||||
EV_DEBUG(
|
||||
.descriptorHeapCaptureReplay = VK_TRUE,
|
||||
)
|
||||
};
|
||||
|
||||
VkPhysicalDeviceShaderUntypedPointersFeaturesKHR shaderUntypedPointersFeature = {
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR,
|
||||
.shaderUntypedPointers = VK_TRUE,
|
||||
};
|
||||
|
||||
VkPhysicalDeviceShaderObjectFeaturesEXT shaderObjectFeature = {
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT,
|
||||
.shaderObject = VK_TRUE,
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
evstring name;
|
||||
void* data;
|
||||
@@ -35,6 +54,9 @@ typedef struct {
|
||||
|
||||
const evkDeviceExtension evkSupportedExtensions[] = {
|
||||
{ evstr(VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME) , &descriptorBufFeature , &descriptorBufFeature.pNext },
|
||||
{ evstr(VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME) , &descriptorHeapFeature , &descriptorHeapFeature.pNext },
|
||||
{ evstr(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME), &shaderUntypedPointersFeature, &shaderUntypedPointersFeature.pNext },
|
||||
{ evstr(VK_EXT_SHADER_OBJECT_EXTENSION_NAME) , &shaderObjectFeature , &shaderObjectFeature.pNext },
|
||||
};
|
||||
const u32 evkSupportedExtensionsCount = EV_ARRSIZE(evkSupportedExtensions);
|
||||
|
||||
|
||||
+10
-2
@@ -59,8 +59,14 @@ evkPipeline evkCreateGraphicsPipeline(evkDevice device, evkPipelineCreateInfo cr
|
||||
for(int i = 0; i < colorAttachmentCount; i++)
|
||||
colorAttachmentFormats[i] = createInfo.colorAttachments[i].format;
|
||||
|
||||
VkPipelineCreateFlags2CreateInfo pipelineCreateFlags2CreateInfo = {
|
||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO,
|
||||
.flags = VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT,
|
||||
};
|
||||
|
||||
VkPipelineRenderingCreateInfoKHR pipelineRenderingCreateInfo = {
|
||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
|
||||
.pNext = &pipelineCreateFlags2CreateInfo,
|
||||
.colorAttachmentCount = colorAttachmentCount,
|
||||
.pColorAttachmentFormats = colorAttachmentFormats,
|
||||
.depthAttachmentFormat = createInfo.depthAttachmentFormat,
|
||||
@@ -191,13 +197,13 @@ evkPipeline evkCreateGraphicsPipeline(evkDevice device, evkPipelineCreateInfo cr
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(!"Set Layout construction through shader reflection not implemented yet.");
|
||||
// assert(!"Set Layout construction through shader reflection not implemented yet.");
|
||||
}
|
||||
|
||||
VkGraphicsPipelineCreateInfo graphicsPipelineCreateInfo = {
|
||||
.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
|
||||
.pNext = &pipelineRenderingCreateInfo,
|
||||
.flags = VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,
|
||||
.flags = 0,
|
||||
.stageCount = shaderStageCount,
|
||||
.pStages = shaderStageCreateInfos,
|
||||
.pVertexInputState = &vertexInputStateCreateInfo,
|
||||
@@ -210,6 +216,8 @@ evkPipeline evkCreateGraphicsPipeline(evkDevice device, evkPipelineCreateInfo cr
|
||||
.layout = res.layout.vk,
|
||||
};
|
||||
|
||||
|
||||
|
||||
EVK_CHECK(vkCreateGraphicsPipelines(device.vk, VK_NULL_HANDLE, 1, &graphicsPipelineCreateInfo, NULL, &res.vk));
|
||||
|
||||
res._device = device;
|
||||
|
||||
+7
-4
@@ -13,7 +13,7 @@ evkShader evkInitShaderFromBytes(evkDevice device, const u8* shaderBytes, u32 sh
|
||||
};
|
||||
vkCreateShaderModule(device.vk, &createInfo, NULL, &shader.vk);
|
||||
|
||||
shader.reflect = evkGenerateShaderReflectionData(shaderBytes, shaderLen);
|
||||
// shader.reflect = evkGenerateShaderReflectionData(shaderBytes, shaderLen);
|
||||
|
||||
return shader;
|
||||
}
|
||||
@@ -96,6 +96,7 @@ evkShaderCompiler evkCreateShaderCompiler()
|
||||
evkShaderCompiler compiler;
|
||||
compiler.sc = shaderc_compiler_initialize();
|
||||
compiler.scopt = shaderc_compile_options_initialize();
|
||||
shaderc_compile_options_set_target_spirv(compiler.scopt, shaderc_spirv_version_1_3);
|
||||
shaderc_compile_options_set_include_callbacks(compiler.scopt, _shader_include_resolve, _shader_include_release, NULL);
|
||||
shaderc_compile_options_set_generate_debug_info(compiler.scopt);
|
||||
return compiler;
|
||||
@@ -107,7 +108,7 @@ void evkDestroyShaderCompiler(evkShaderCompiler compiler)
|
||||
shaderc_compiler_release(compiler.sc);
|
||||
}
|
||||
|
||||
evkShader evkInitShaderFromString(evkDevice device, evkShaderCompiler compiler,evstring shaderName, evstring shaderText)
|
||||
evkShader evkInitShaderFromString(evkDevice device, evkShaderCompiler compiler,evstring shaderName, evstring shaderText, VkShaderStageFlags stage)
|
||||
{
|
||||
shaderc_compilation_result_t compilation_result = shaderc_compile_into_spv(compiler.sc, shaderText, evstring_getLength(shaderText), shaderc_glsl_infer_from_source, shaderName, "main", compiler.scopt);
|
||||
|
||||
@@ -121,12 +122,14 @@ evkShader evkInitShaderFromString(evkDevice device, evkShaderCompiler compiler,e
|
||||
ev_log_error("Errors:\n%s", shaderc_result_get_error_message(compilation_result));
|
||||
}
|
||||
|
||||
return evkInitShaderFromBytes(device, (u8*)shaderc_result_get_bytes(compilation_result), shaderc_result_get_length(compilation_result));
|
||||
evkShader res = evkInitShaderFromBytes(device, (u8*)shaderc_result_get_bytes(compilation_result), shaderc_result_get_length(compilation_result));
|
||||
res.reflect.stage = stage;
|
||||
return res;
|
||||
}
|
||||
evkShader evkInitShaderFromFile(evkDevice device, evkShaderCompiler compiler, evstring shaderPath)
|
||||
{
|
||||
evstring shaderText = evstring_readFile(shaderPath);
|
||||
return evkInitShaderFromString(device, compiler, shaderPath, shaderText);
|
||||
return evkInitShaderFromString(device, compiler, shaderPath, shaderText, 0);
|
||||
}
|
||||
|
||||
VkPipelineShaderStageCreateInfo evkGetShaderStageCreateInfo(evkShader shader)
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
[[nodiscard("Leaking VkShaderModule")]]
|
||||
evkShader evkInitShaderFromBytes(evkDevice device, const u8* shaderBytes, u32 shaderLen);
|
||||
[[nodiscard("Leaking VkShaderModule")]]
|
||||
evkShader evkInitShaderFromString(evkDevice device, evkShaderCompiler compiler, evstring shaderName, evstring shaderText);
|
||||
evkShader evkInitShaderFromString(evkDevice device, evkShaderCompiler compiler, evstring shaderName, evstring shaderText, VkShaderStageFlags stage);
|
||||
[[nodiscard("Leaking VkShaderModule")]]
|
||||
evkShader evkInitShaderFromFile(evkDevice device, evkShaderCompiler compiler, evstring shaderPath);
|
||||
void evkDestroyShader(evkDevice device, evkShader shader);
|
||||
|
||||
+1
-2
@@ -365,9 +365,8 @@ typedef struct {
|
||||
typedef struct {
|
||||
VkBuffer vk;
|
||||
evkGPUAllocationData allocData;
|
||||
u32 sizeInBytes;
|
||||
VkBufferUsageFlags usage;
|
||||
VkDeviceAddress address;
|
||||
VkDeviceAddressRangeEXT addressRange;
|
||||
} evkBuffer;
|
||||
|
||||
typedef struct {
|
||||
|
||||
+2
-2
@@ -31,8 +31,8 @@ disabled_warnings = {
|
||||
}
|
||||
|
||||
subproject('evol-headers', default_options: {'build_tests': false})
|
||||
subproject('volk')
|
||||
subproject('shaderc')
|
||||
# subproject('volk')
|
||||
# subproject('shaderc')
|
||||
|
||||
evk_c_args = []
|
||||
|
||||
|
||||
@@ -62,7 +62,10 @@ int main(void)
|
||||
evstr("VK_KHR_synchronization2"),
|
||||
evstr("VK_KHR_buffer_device_address"),
|
||||
evstr("VK_EXT_descriptor_indexing"),
|
||||
evstr("VK_EXT_descriptor_buffer"),
|
||||
evstr("VK_KHR_maintenance5"),
|
||||
evstr("VK_EXT_descriptor_heap"),
|
||||
evstr(VK_EXT_SHADER_OBJECT_EXTENSION_NAME),
|
||||
evstr(VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME),
|
||||
}),
|
||||
});
|
||||
|
||||
@@ -121,8 +124,8 @@ int main(void)
|
||||
evstring vertexShaderText = evstring_new(vertexShaderBytes);
|
||||
evstring fragmentShaderText = evstring_new(fragmentShaderBytes);
|
||||
|
||||
evkShader vertShader = evkInitShaderFromString(device, compiler, evstr("heap_triangle.vert"),vertexShaderText);
|
||||
evkShader fragShader = evkInitShaderFromString(device, compiler, evstr("heap_triangle.frag"), fragmentShaderText);
|
||||
evkShader vertShader = evkInitShaderFromString(device, compiler, evstr("heap_triangle.vert"),vertexShaderText, VK_SHADER_STAGE_VERTEX_BIT);
|
||||
evkShader fragShader = evkInitShaderFromString(device, compiler, evstr("heap_triangle.frag"), fragmentShaderText, VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
|
||||
evstring_free(vertexShaderText);
|
||||
evstring_free(fragmentShaderText);
|
||||
@@ -148,7 +151,7 @@ int main(void)
|
||||
// );
|
||||
// evkDescriptorSetLayout setLayout_0 = evkCreateDescriptorSetLayoutFromBindings(&device, vertShader.reflect.bindings);
|
||||
|
||||
evkDescriptorSetLayout setLayout_0 = evkCreateDescriptorSetLayoutFromShaders(&device, svec_init(evkShader, {vertShader, fragShader}));
|
||||
// evkDescriptorSetLayout setLayout_0 = evkCreateDescriptorSetLayoutFromShaders(&device, svec_init(evkShader, {vertShader, fragShader}));
|
||||
|
||||
evkPipelineCreateInfo pipelineCreateInfo = EV_DEFAULT(evkPipelineCreateInfo,
|
||||
dynamicStates = svec_init(VkDynamicState, {
|
||||
@@ -170,35 +173,20 @@ int main(void)
|
||||
}},
|
||||
}),
|
||||
|
||||
setLayouts = svec_init(evkDescriptorSetLayout, {setLayout_0}),
|
||||
// setLayouts = svec_init(evkDescriptorSetLayout, {setLayout_0}),
|
||||
);
|
||||
|
||||
evkDescriptorSet set_0 = evkCreateDescriptorSet(&(evkDescriptorSetCreateInfo){
|
||||
.device = &device,
|
||||
.allocator = &allocator,
|
||||
.layout = &setLayout_0
|
||||
});
|
||||
|
||||
|
||||
// // if stageflags is 0, it's all graphics
|
||||
// // if descriptor count is 0, it's 1
|
||||
// // if
|
||||
// evkDescriptorSetLayout set_0 = evkCreateDescriptorSetLayout(&device, svec_init(evkDescriptorBinding, {
|
||||
// { "positions", VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER },
|
||||
// })
|
||||
// );
|
||||
|
||||
evkBuffer vertBuf = evkCreateBuffer(&device, (evkBufferCreateInfo) {
|
||||
.queueFamilyIndices = svec_init(u32, {device.queueFamilies[VK_QUEUE_GRAPHICS_BIT].familyIndex}),
|
||||
.sizeInBytes = 6 * 4,
|
||||
.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
|
||||
.allocationCreateInfo = {
|
||||
.allocationFlags = EVK_GPU_ALLOCATION_CREATE_MAPPED_BIT | EVK_GPU_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT,
|
||||
.allocator = allocator,
|
||||
},
|
||||
evkBuffer resourceDescriptorHeap = evkCreateBuffer(&device, (evkBufferCreateInfo) {
|
||||
.sizeInBytes = 16 * 4, // bufferDescriptorSize is 16 on my current device
|
||||
.usage = VK_BUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
|
||||
.exclusive = true,
|
||||
.allocationCreateInfo = {
|
||||
.allocationFlags = EVK_GPU_ALLOCATION_CREATE_MAPPED_BIT | EVK_GPU_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT,
|
||||
.allocator = allocator,
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
evkBuffer uniBuf = evkCreateBuffer(&device, (evkBufferCreateInfo) {
|
||||
.sizeInBytes = 12 * 4,
|
||||
.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
|
||||
@@ -209,17 +197,25 @@ int main(void)
|
||||
.exclusive = true,
|
||||
});
|
||||
|
||||
float* vert_arr = (float*)vertBuf.allocData.allocationInfo.vma.pMappedData;
|
||||
vert_arr[0] = 0.0f; vert_arr[1] = -0.5f;
|
||||
vert_arr[2] = 0.5f; vert_arr[3] = 0.5f;
|
||||
vert_arr[4] = -0.5f; vert_arr[5] = 0.5f;
|
||||
|
||||
float* uni_arr = (float*)uniBuf.allocData.allocationInfo.vma.pMappedData;
|
||||
uni_arr[0] = 0.0f; uni_arr[1] = -0.5f; uni_arr[2] = 0.0f; uni_arr[3] = 1.0f;
|
||||
uni_arr[4] = 0.5f; uni_arr[5] = 0.5f; uni_arr[6] = 0.0f; uni_arr[7] = 1.0f;
|
||||
uni_arr[8] = -0.5f; uni_arr[9] = 0.5f; uni_arr[10] = 0.0f; uni_arr[11] = 1.0f;
|
||||
|
||||
evkSetDescriptor(&set_0, evstr("vertexData"), &uniBuf);
|
||||
// evkSetDescriptor(&set_0, evstr("vertexData"), &uniBuf);
|
||||
|
||||
VkResourceDescriptorInfoEXT resource = {
|
||||
.sType = VK_STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT,
|
||||
.type = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
||||
.data.pAddressRange = &uniBuf.addressRange
|
||||
};
|
||||
|
||||
VkHostAddressRangeEXT descriptor = {
|
||||
.address = resourceDescriptorHeap.allocData.allocationInfo.vma.pMappedData,
|
||||
.size = 16
|
||||
};
|
||||
|
||||
vkWriteResourceDescriptorsEXT(device.vk, 1, &resource, &descriptor);
|
||||
|
||||
VkViewport viewport = EV_DEFAULT(VkViewport, width=width, height=height);
|
||||
VkRect2D scissor = EV_DEFAULT(VkRect2D,extent.width=width, extent.height=height);
|
||||
@@ -268,14 +264,19 @@ int main(void)
|
||||
subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT
|
||||
));
|
||||
|
||||
VkDeviceSize offset = 0;
|
||||
vkCmdBindVertexBuffers(cmdbuf.vk, 0, 1, &vertBuf.vk, &offset);
|
||||
// VkDeviceSize offset = 0;
|
||||
// vkCmdBindVertexBuffers(cmdbuf.vk, 0, 1, &vertBuf.vk, &offset);
|
||||
|
||||
evkCmdBindDescriptorSets(&cmdbuf, &graphicsPipeline, svec_init(evkDescriptorSet, { set_0 }), svec_init(u32, { 0 }));
|
||||
// evkCmdBindDescriptorSets(&cmdbuf, &graphicsPipeline, svec_init(evkDescriptorSet, { set_0 }), svec_init(u32, { 0 }));
|
||||
|
||||
vkCmdSetScissor(cmdbuf.vk, 0, 1, &scissor);
|
||||
vkCmdSetViewport(cmdbuf.vk, 0, 1, &viewport);
|
||||
|
||||
vkCmdBindResourceHeapEXT(cmdbuf.vk, &(VkBindHeapInfoEXT) {
|
||||
.sType = VK_STRUCTURE_TYPE_BIND_HEAP_INFO_EXT,
|
||||
.heapRange = resourceDescriptorHeap.addressRange,
|
||||
});
|
||||
|
||||
vkCmdBeginRenderingKHR(cmdbuf.vk, &renderingInfo);
|
||||
|
||||
evkCmdBindPipeline(&cmdbuf, &graphicsPipeline);
|
||||
@@ -338,11 +339,11 @@ int main(void)
|
||||
|
||||
evkDestroyPipeline(graphicsPipeline);
|
||||
|
||||
evkDestroyBuffer(vertBuf);
|
||||
// evkDestroyBuffer(vertBuf);
|
||||
evkDestroyBuffer(uniBuf);
|
||||
|
||||
evkDestroyDescriptorSet(&device, &set_0);
|
||||
evkDestroyDescriptorSetLayout(&device, &setLayout_0);
|
||||
// evkDestroyDescriptorSet(&device, &set_0);
|
||||
// evkDestroyDescriptorSetLayout(&device, &setLayout_0);
|
||||
|
||||
evkDestroyShader(device, vertShader);
|
||||
evkDestroyShader(device, fragShader);
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#version 450
|
||||
|
||||
#pragma shader_stage(fragment)
|
||||
|
||||
#extension GL_EXT_descriptor_heap: require
|
||||
|
||||
layout(location = 0) out vec4 outColor;
|
||||
|
||||
void main() {
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
#version 450
|
||||
#pragma shader_stage(vertex)
|
||||
|
||||
in layout(location=0) vec2 position;
|
||||
#extension GL_EXT_descriptor_heap: require
|
||||
|
||||
layout(set=0, binding=0) uniform data {
|
||||
layout(descriptor_heap) uniform data {
|
||||
vec4 positions[3];
|
||||
} vertexData;
|
||||
} vertexData[];
|
||||
|
||||
void main() {
|
||||
// gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0);
|
||||
// gl_Position = vec4(position, 0.0, 1.0);
|
||||
// gl_Position = vec4(inputData.positions[gl_VertexIndex], 0.0, 1.0);
|
||||
gl_Position = vertexData.positions[gl_VertexIndex];
|
||||
// gl_Position = vec4(position, 0.0, 1.0);
|
||||
gl_Position = vertexData[0].positions[gl_VertexIndex];
|
||||
}
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
subdir('basic_triangle')
|
||||
# subdir('basic_triangle')
|
||||
subdir('descriptor_heap')
|
||||
@@ -15,13 +15,3 @@ index d44f62a..16bad95 100644
|
||||
add_subdirectory(${SHADERC_GLSLANG_DIR} glslang)
|
||||
endif()
|
||||
if (NOT TARGET glslang)
|
||||
diff --git a/utils/git-sync-deps b/utils/git-sync-deps
|
||||
index eecfbe9..73df6e5 100755
|
||||
--- a/utils/git-sync-deps
|
||||
+++ b/utils/git-sync-deps
|
||||
@@ -279,4 +279,4 @@ def main(argv):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
- exit(main(sys.argv[1:]))
|
||||
+ sys.exit(main(sys.argv[1:]))
|
||||
|
||||
@@ -2,6 +2,7 @@ project('libshaderc', 'cpp')
|
||||
|
||||
python = find_program('python3')
|
||||
run_command(python, './utils/git-sync-deps', check: true)
|
||||
run_command(python, './utils/update_build_version.py', check: true)
|
||||
|
||||
cmake = import('cmake')
|
||||
opts = cmake.subproject_options()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
directory = shaderc
|
||||
|
||||
url = https://github.com/google/shaderc
|
||||
revision = v2024.4
|
||||
revision = v2026.2
|
||||
depth=1
|
||||
patch_directory = shaderc
|
||||
|
||||
|
||||
Reference in New Issue
Block a user