Descriptorize ShaderModule

Change-Id: Ic79d00380f583485de0fb05bd47b1f869919ebe6
This commit is contained in:
Corentin Wallez
2018-08-20 17:01:20 +02:00
committed by Corentin Wallez
parent 3ccde9ce72
commit df6710358b
28 changed files with 113 additions and 127 deletions

View File

@@ -25,9 +25,9 @@
namespace utils {
void FillShaderModuleBuilder(const dawn::ShaderModuleBuilder& builder,
dawn::ShaderStage stage,
const char* source) {
dawn::ShaderModule CreateShaderModule(const dawn::Device& device,
dawn::ShaderStage stage,
const char* source) {
shaderc::Compiler compiler;
shaderc::CompileOptions options;
@@ -49,7 +49,7 @@ namespace utils {
auto result = compiler.CompileGlslToSpv(source, strlen(source), kind, "myshader?", options);
if (result.GetCompilationStatus() != shaderc_compilation_status_success) {
std::cerr << result.GetErrorMessage();
return;
return {};
}
// result.cend and result.cbegin return pointers to uint32_t.
@@ -58,7 +58,10 @@ namespace utils {
// So this size is in units of sizeof(uint32_t).
ptrdiff_t resultSize = resultEnd - resultBegin;
// SetSource takes data as uint32_t*.
builder.SetSource(static_cast<uint32_t>(resultSize), result.cbegin());
dawn::ShaderModuleDescriptor descriptor;
descriptor.codeSize = static_cast<uint32_t>(resultSize);
descriptor.code = result.cbegin();
#ifdef DUMP_SPIRV_ASSEMBLY
{
@@ -87,14 +90,8 @@ namespace utils {
printf("\n");
printf("SPIRV JS ARRAY DUMP END\n");
#endif
}
dawn::ShaderModule CreateShaderModule(const dawn::Device& device,
dawn::ShaderStage stage,
const char* source) {
dawn::ShaderModuleBuilder builder = device.CreateShaderModuleBuilder();
FillShaderModuleBuilder(builder, stage, source);
return builder.GetResult();
return device.CreateShaderModule(&descriptor);
}
dawn::Buffer CreateBufferFromData(const dawn::Device& device,

View File

@@ -18,9 +18,6 @@
namespace utils {
void FillShaderModuleBuilder(const dawn::ShaderModuleBuilder& builder,
dawn::ShaderStage stage,
const char* source);
dawn::ShaderModule CreateShaderModule(const dawn::Device& device,
dawn::ShaderStage stage,
const char* source);