Fix xfb stride limit issue (#2088)
* Fix xfb_stride limit issue Unsized array can't apply to transform trace. layout qualifier "offset" require GL_ARB_enhanced_layouts enable or glsl core version > 440. * Add negative test for xfb limit * update case result * Fix compile information issue Fix compile information issue and test comment issue. * remove es profile condition, use profileRequires to limit. * Fix xfb_stride limit issue Unsized array can't apply to transform trace. layout qualifier "offset" require GL_ARB_enhanced_layouts enable or glsl core version > 440. Add negative test for xfb limit * Move es profile check out of version number check * Adjust error information and related cases remove the new version check, refine original version check. * Revert condition for vulkan, and remove redundant test code.
This commit is contained in:
parent
8111268575
commit
08328fea5a
15 changed files with 294 additions and 8 deletions
|
|
@ -1362,9 +1362,9 @@ unsigned int TIntermediate::computeTypeXfbSize(const TType& type, bool& contains
|
|||
// that component's size. Aggregate types are flattened down to the component
|
||||
// level to get this sequence of components."
|
||||
|
||||
if (type.isArray()) {
|
||||
if (type.isSizedArray()) {
|
||||
// TODO: perf: this can be flattened by using getCumulativeArraySize(), and a deref that discards all arrayness
|
||||
assert(type.isSizedArray());
|
||||
// Unsized array use to xfb should be a compile error.
|
||||
TType elementType(type, 0);
|
||||
return type.getOuterArraySize() * computeTypeXfbSize(elementType, contains64BitType, contains16BitType, contains16BitType);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue