Search Issue Tracker
Fixed in 2020.1.X
Fixed in 2018.4.X, 2019.2.X, 2019.3.X
Shader is rendered incorrectly when loaded from an Asset Bundle made in Unity 2017.4 in a newer version
Steps to reproduce:
1. Open User-supplied project
2. In the "Sample" scene, select 'loader' in the Hierarchy window and in Inspector window, under 'Loader 2' select 'Bundle VRCA2017'
3. Run the Scene
Expected: the object looks identical to how it looks in 2017.4 (picture attached)
Actual: the object differs from the look from 2017
Reproduced in: 2018.4.0f1, 2018.4.12f1, 2019.2.12f1, 2018.3.0b10, 2020.1.0a12
Not reproduced in: 2017.4.34f1
Errors upon entering Play mode:
Failed to create DX11 vertex declaration; something wrong with vertex shader input data? (hr=80070057)
Repro on Win Standalone
Repro on DX11
No repro on OpenGLES3, Vulkan, DX12, Metal, OpenGLES2
Nov 30, 2019 22:10
It says fixed in "Fixed in 2018.4" but it's still listed as a known issue for Fixed in 2018.4.13?
Nov 25, 2019 11:03
Annoying! Shaders are a huge problem with Asset bundles and a good reason to drop them for us!
If only a shader 'description' could be used instead and then final shaders generated by platform/Unity-version on loading, such problems may be much improved
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
- TreeView Child display toggle styling becomes reversed when clicking and dragging it
- Null is returned when using FocusOutEvent.relatedTarget
- Unity_BaseInstanceID is always zero when rendering multiple meshes and instancing with the same buffer
- UI Document button's text does not resize relatively when size in percentage (%) is used
- Event.current.mousePosition has an offset of 1px along the y-axis in WebGL build when the mouse button is released
Resolution Note (fix version 2020.1):
Serialized shader data format was accidentally changed between 2017 and 2018 causing shaders in old asset bundles to have corrupt vertex channel masks. We fixed this by patching the asset bundle data when reading it to match the current format. Backports will follow.