| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "vk/GrVkProgramBuilder.h" | 8 #include "vk/GrVkProgramBuilder.h" |
| 9 | 9 |
| 10 #include "vk/GrVkGpu.h" | 10 #include "vk/GrVkGpu.h" |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 shaderString.append("\n"); | 100 shaderString.append("\n"); |
| 101 } | 101 } |
| 102 } | 102 } |
| 103 | 103 |
| 104 shaderc_compiler_t compiler = gpu->shadercCompiler(); | 104 shaderc_compiler_t compiler = gpu->shadercCompiler(); |
| 105 | 105 |
| 106 shaderc_compile_options_t options = shaderc_compile_options_initialize(); | 106 shaderc_compile_options_t options = shaderc_compile_options_initialize(); |
| 107 shaderc_compile_options_set_forced_version_profile(options, 140, shaderc_pro
file_none); | 107 shaderc_compile_options_set_forced_version_profile(options, 140, shaderc_pro
file_none); |
| 108 | 108 |
| 109 shaderc_shader_kind shadercStage = vk_shader_stage_to_shaderc_kind(stage); | 109 shaderc_shader_kind shadercStage = vk_shader_stage_to_shaderc_kind(stage); |
| 110 shaderc_spv_module_t module = shaderc_compile_into_spv(compiler, | 110 shaderc_compilation_result_t result = shaderc_compile_into_spv(compiler, |
| 111 shaderString.c_str(), | 111 shaderString.
c_str(), |
| 112 strlen(shaderString.c
_str()), | 112 strlen(shader
String.c_str()), |
| 113 shadercStage, | 113 shadercStage, |
| 114 "shader", | 114 "shader", |
| 115 "main", | 115 "main", |
| 116 options); | 116 options); |
| 117 shaderc_compile_options_release(options); | 117 shaderc_compile_options_release(options); |
| 118 #ifdef SK_DEBUG | 118 #ifdef SK_DEBUG |
| 119 if (shaderc_module_get_num_errors(module)) { | 119 if (shaderc_result_get_num_errors(result)) { |
| 120 SkDebugf("%s\n", shaderString.c_str()); | 120 SkDebugf("%s\n", shaderString.c_str()); |
| 121 SkDebugf("%s\n", shaderc_module_get_error_message(module)); | 121 SkDebugf("%s\n", shaderc_result_get_error_message(result)); |
| 122 return false; | 122 return false; |
| 123 } | 123 } |
| 124 #endif | 124 #endif |
| 125 | 125 |
| 126 VkShaderModuleCreateInfo moduleCreateInfo; | 126 VkShaderModuleCreateInfo moduleCreateInfo; |
| 127 memset(&moduleCreateInfo, 0, sizeof(VkShaderModuleCreateInfo)); | 127 memset(&moduleCreateInfo, 0, sizeof(VkShaderModuleCreateInfo)); |
| 128 moduleCreateInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO; | 128 moduleCreateInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO; |
| 129 moduleCreateInfo.pNext = nullptr; | 129 moduleCreateInfo.pNext = nullptr; |
| 130 moduleCreateInfo.flags = 0; | 130 moduleCreateInfo.flags = 0; |
| 131 moduleCreateInfo.codeSize = shaderc_module_get_length(module); | 131 moduleCreateInfo.codeSize = shaderc_result_get_length(result); |
| 132 moduleCreateInfo.pCode = (const uint32_t*)shaderc_module_get_bytes(module); | 132 moduleCreateInfo.pCode = (const uint32_t*)shaderc_result_get_bytes(result); |
| 133 | 133 |
| 134 VkResult err = GR_VK_CALL(gpu->vkInterface(), CreateShaderModule(gpu->device
(), | 134 VkResult err = GR_VK_CALL(gpu->vkInterface(), CreateShaderModule(gpu->device
(), |
| 135 &moduleCrea
teInfo, | 135 &moduleCrea
teInfo, |
| 136 nullptr, | 136 nullptr, |
| 137 shaderModul
e)); | 137 shaderModul
e)); |
| 138 shaderc_module_release(module); | 138 shaderc_result_release(result); |
| 139 if (err) { | 139 if (err) { |
| 140 return false; | 140 return false; |
| 141 } | 141 } |
| 142 | 142 |
| 143 memset(stageInfo, 0, sizeof(VkPipelineShaderStageCreateInfo)); | 143 memset(stageInfo, 0, sizeof(VkPipelineShaderStageCreateInfo)); |
| 144 stageInfo->sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; | 144 stageInfo->sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; |
| 145 stageInfo->pNext = nullptr; | 145 stageInfo->pNext = nullptr; |
| 146 stageInfo->flags = 0; | 146 stageInfo->flags = 0; |
| 147 stageInfo->stage = stage; | 147 stageInfo->stage = stage; |
| 148 stageInfo->module = *shaderModule; | 148 stageInfo->module = *shaderModule; |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 descriptorSets, | 314 descriptorSets, |
| 315 fUniformHandles, | 315 fUniformHandles, |
| 316 fUniformHandler.fUniforms, | 316 fUniformHandler.fUniforms, |
| 317 fUniformHandler.fCurrentVertexUBOOffset, | 317 fUniformHandler.fCurrentVertexUBOOffset, |
| 318 fUniformHandler.fCurrentFragmentUBOOffset, | 318 fUniformHandler.fCurrentFragmentUBOOffset, |
| 319 numSamplers, | 319 numSamplers, |
| 320 fGeometryProcessor, | 320 fGeometryProcessor, |
| 321 fXferProcessor, | 321 fXferProcessor, |
| 322 fFragmentProcessors); | 322 fFragmentProcessors); |
| 323 } | 323 } |
| OLD | NEW |