new feature level API for backends (#5784)
* new feature level API for backends backend can now return a "feature level", each level corresponds to a "bundle" of features. Level1: ES3.0 capabilities Level2: ES3.1 capabilities + 31 textures + cubemap arrays Currently metal always returns level 1, GL and Vulkan return level 2 if 31 textures or more are supported. * Add public APIs for feature levels * Add infrastructure to check feature levels in materials * validate material feature level on use The validation is done when creating a renderable. If the engine doesn't support the material's feature level, an exception is thrown (or assert if exceptions are not enabled). * material documentation * activate ESSL 3.10 for feature level 2 also generate #defines to identify available feature levels * support for cubemap arrays in the public API if feature level 2 is supported, cubemap arrays can be used from the public API. * add release notes
This commit is contained in:
@@ -932,6 +932,36 @@ material {
|
||||
}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
### General: featureLevel
|
||||
|
||||
Type
|
||||
: `number`
|
||||
|
||||
Value
|
||||
: An integer value, either 1 or 2. Defaults to 1.
|
||||
|
||||
Feature Level | Guaranteed features
|
||||
:----------------------|:---------------------------------
|
||||
1 | 9 textures per material
|
||||
2 | 12 textures per material, cubemap arrays, ESSL 3.10
|
||||
[Table [featureLevels]: Feature levels]
|
||||
|
||||
Description
|
||||
: Sets the feature level of the material. Each feature level defines a set of features the
|
||||
material can use. If the material uses a feature not supported by the selected level, `matc`
|
||||
will generate an error during compilation. A given feature level is guaranteed to support
|
||||
all features of lower feature levels.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ JSON
|
||||
material {
|
||||
featureLevel : 2
|
||||
}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Bugs
|
||||
: `matc` doesn't verify that a material is not using features above its selected feature level.
|
||||
|
||||
|
||||
### General: shadingModel
|
||||
|
||||
Type
|
||||
|
||||
Reference in New Issue
Block a user