Improve GLSL source program support

Old GLSL source program support in Vulkan framework was built on top
of glu::ProgramSources. This had two problems:

1) There was no obvious way to extend/annotate sources with SPIR-V
-specific information such as target SPIR-V version.

2) Most of glu::ProgramSources, such as attribute bindings or TF
configuration, was completely ignored.

This change introduces new vk::GlslSource type that replaces
glu::ProgramSources in vk::SourceCollections. vk::GlslSource contains
shader source strings as well as build options (vk::GlslBuildOptions).

vk::GlslBuildOptions doesn't currently contain anything useful but can
be later extended to support selecting target SPIR-V version for
example.

The change is mostly transparent to existing code, except:

 * vkSpirvProgram.hpp was somewhat unnecessarily including
tcuTestLog.hpp and changing that to a forward declaration required
fixing includes in several test code files.

  * vktShaderExecutor.cpp has been extended to allow specifying build
options.

Components: Vulkan

Change-Id: I69a6cd55ea91215585515b9d41860d818cbc97ae
(cherry picked from commit fa7a45c9bcb909be38ffd55549beb6db5115a65b)
35 files changed
tree: 818a018b67b9fce1a93bcc710ad0cf9a61a301c9
  1. android/
  2. data/
  3. doc/
  4. execserver/
  5. executor/
  6. external/
  7. framework/
  8. modules/
  9. scripts/
  10. targets/
  11. .editorconfig
  12. .gitignore
  13. Android.mk
  14. CMakeLists.txt
  15. LICENSE
  16. MODULE_LICENSE_APACHE2
  17. NOTICE
  18. README.md
README.md

dEQP README

This repository contains a GPU testing suite called dEQP (drawElements Quality Program). dEQP contains tests for several graphics APIs, including OpenGL ES, EGL, and Vulkan.

Documentation

Up-to-date documentation for the dEQP is available at Android Open Source Project site.

Khronos Vulkan Conformance Tests

This repository includes Khronos Vulkan CTS under external/vulkancts directory. For more information see Vulkan CTS README.