| 926 | } |
| 927 | |
| 928 | static void CreateProgramResourceBindings(NullProgram* program, NullShaderModule* vertex_module, NullShaderModule* fragment_module, NullShaderModule* compute_module) |
| 929 | { |
| 930 | ResourceBindingDesc bindings[MAX_SET_COUNT][MAX_BINDINGS_PER_SET_COUNT] = {}; |
| 931 | |
| 932 | uint32_t ubo_alignment = UNIFORM_BUFFERS_ALIGNMENT; |
| 933 | uint32_t ssbo_alignment = 0; |
| 934 | |
| 935 | ProgramResourceBindingsInfo binding_info = {}; |
| 936 | FillProgramResourceBindings(&program->m_BaseProgram, bindings, ubo_alignment, ssbo_alignment, binding_info); |
| 937 | |
| 938 | program->m_BaseProgram.m_MaxSet = binding_info.m_MaxSet; |
| 939 | program->m_BaseProgram.m_MaxBinding = binding_info.m_MaxBinding; |
| 940 | program->m_UniformDataSize = binding_info.m_UniformDataSize; |
| 941 | program->m_UniformData = new uint8_t[binding_info.m_UniformDataSize]; |
| 942 | memset(program->m_UniformData, 0, binding_info.m_UniformDataSize); |
| 943 | |
| 944 | BuildUniforms(&program->m_BaseProgram); |
| 945 | BuildUniformBuffers(program); |
| 946 | } |
| 947 | |
| 948 | static NullShaderModule* NewShaderModuleFromDDF(HContext context, ShaderDesc::Shader* ddf) |
| 949 | { |
no test coverage detected