Fix attribute cache bug 96/285296/2
authorEunki, Hong <eunkiki.hong@samsung.com>
Thu, 8 Dec 2022 09:29:52 +0000 (18:29 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Fri, 9 Dec 2022 13:52:37 +0000 (22:52 +0900)
commit2c55cc6b056f93522e36943d7bbaf770a5aa2170
treeec499360e3add246d7cf1206e956f4d39aa7854f
parentb5d12a2147ea67ff87d2bc3b10659cff311954c9
Fix attribute cache bug

1. It is possible that GL_ACTIVE_ATTRIBUTES value is smaller than
location of attributes. If it happend, crashed due to mVertexInputAttributes.insert call.

To fix this crash issue, make mVertexInputAttributes size relative with location value,
not relative with GL_ACTIVE_ATTRIBUTES.
Also, It will guarantee that attribute's location can be index of it's real attrubutes.
(Since vector.insert operation shift the index, it was depend on the location input order.
and also slow)

2. Ensure the enable of vertex attributes.
Since  vertexInputState.attributes generated by Geometry in pipeline-cache system,
Change the attribute's list of geometry at the same shader was not worked.

TODO : Make VAO caching system works well. Currently, VAO doesn't useful.
We should found a way to EnableVertexAttribArray only with shader's information,
not depend on Geometry information.
or, we might need to calculate vertex attribute location list's hash, and use it as key.

Change-Id: I3b309833a0865ad175fabf376913c3ad91e64d4a
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
automated-tests/src/dali-adaptor/dali-test-suite-utils/test-gl-abstraction.h
dali/internal/graphics/gles-impl/gles-context.cpp
dali/internal/graphics/gles-impl/gles-graphics-reflection.cpp