Initial support for compute
* minimal backend support for compute - added api to dispatch a compute shader - added api to create and bind a ssbo - added api to read back a buffer Only implemented in the gl backend * Add a backend compute test suite * basic support for compute shaders in matc this is still very much work-in-progress. We're not supporting images nor ssbo for now. * rename UniformInterfaceBlock to BufferInterfaceBlock * augment BufferInterfaceBlock to support ssbo features - add support for std430 - add support for ssbo - add support for variable-size array - add support for memory qualifiers * reformat MaterialBuilder * material format: move subpasses outside of parameters subpasses now are their own json property instead of being a "parameter". * refactor parameter() methods to match Buffer/SamplerInterfaceBlock We're just shuffling the arguments. * add support for buffers in .mat files * filamat now generates buffer blocks (ssbo) * take feature level into consideration when optimizing shaders * don't store the 'uniform binding' chunk for level 2 materials this includes some refactoring/cleanups of MaterialParser * matinfo: fixes for compute - separate subpasses from parameters - don't attempt to print material properties
This commit is contained in:
@@ -200,16 +200,17 @@ static void setup(Engine* engine, View* view, Scene* scene) {
|
||||
}
|
||||
|
||||
MaterialBuilder::init();
|
||||
MaterialBuilder builder = MaterialBuilder()
|
||||
MaterialBuilder builder;
|
||||
builder
|
||||
.name("DefaultMaterial")
|
||||
.targetApi(MaterialBuilder::TargetApi::ALL)
|
||||
#ifndef NDEBUG
|
||||
.optimization(MaterialBuilderBase::Optimization::NONE)
|
||||
#endif
|
||||
.require(VertexAttribute::UV0)
|
||||
.parameter(MaterialBuilder::SamplerType::SAMPLER_2D, "normalMap")
|
||||
.parameter(MaterialBuilder::SamplerType::SAMPLER_2D, "basecolorMap")
|
||||
.parameter(MaterialBuilder::SamplerType::SAMPLER_2D, "roughnessMap")
|
||||
.parameter("normalMap", MaterialBuilder::SamplerType::SAMPLER_2D)
|
||||
.parameter("basecolorMap", MaterialBuilder::SamplerType::SAMPLER_2D)
|
||||
.parameter("roughnessMap", MaterialBuilder::SamplerType::SAMPLER_2D)
|
||||
.material(R"SHADER(
|
||||
void material(inout MaterialInputs material) {
|
||||
vec2 uv = getUV0() * 2.0;
|
||||
|
||||
Reference in New Issue
Block a user