View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0028251||Runner||Shaders||Public||2017-11-08 16:21||2018-06-17 21:55|
|Reporter||Stewart Bishop||Assigned To||CoreTech|
|Priority||Low||Severity||C - General||Reproducibility||100%|
|Target Version||Fixed in Version|
|Summary||0028251: Shaders: GLSL ES (and possibly GLSL) seems to be missing many input attributes|
|Description||GLSL 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 Reproduce||1) Run the attached sample|
|Tags||rendering, Runner, Shaders|
|1.4 Found In|
|2.x Runtime Found In||220.127.116.11|
|2.x Runtime Verified In||18.104.22.168|