View Issue Details

IDProjectCategoryView StatusLast Update
0028251RunnerShadersPublic2018-06-17 21:55
ReporterStewart BishopAssigned ToCoreTech 
PriorityLowSeverityC - GeneralReproducibility100%
Status AssignedResolutionOpen 
Product Version 
Target VersionFixed in Version 
Summary0028251: Shaders: GLSL ES (and possibly GLSL) seems to be missing many input attributes
DescriptionGLSL ES (and possibly GLSL) seems to be missing many input attributes - these should match every vertex_format definition.

In testing, I have been unable to use many format usages, including blendweight and indices (I've tested many names, nothing seems to work), while these work fine when using HLSL.

Every attribute that can be specified in the vertex format should be accessible in the GLSL ES shader, as it's proving problematic to make vertex buffers cross platform since we can't just automatically detect what shader to use, even with shader_is_compiled(), due to the mismatched input layouts.

Additionally, I feel that the manual entry on vertex format usages (http://docs2.yoyogames.com/source/_build/3_scripting/4_gml_reference/drawing/primitives/vertex%20formats/vertex_format_add_custom.html) should add a column for the corresponding GLSL ES attribute name. Possibly a column for HLSL input semantics too, but those are a little more intuative since there's a nice list of them online.

Attatched project features 2 "entities". Both render the same mesh, but one uses a HLSL shader, the other uses a GLSL ES shader. The one using GLSL ES fails to render due to an "Invalid Input Layout" - I believe due to GLSL ES not supporting all vertex format types. I could be getting the matching attribute names wrong, but it's impossible for me to know since there is no information on what they are.
Steps To Reproduce1) Run the attached sample
Tagsrendering, Runner, Shaders
1.4 Found In
2.x Runtime Found In2.1.2.172
2.x Runtime Verified In2.1.2.172

Activities

Stewart Bishop

2017-11-08 16:21

Developer  

VertexFormatShaderBug.yyz (15,860 bytes)