History log of /external/deqp/external/vulkancts/framework/vulkan/vkBinaryRegistry.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b5c2f56daa415384202d097073cd8cb5dfcf2408 05-May-2017 Pyry Haulos <phaulos@google.com> 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)
/external/deqp/external/vulkancts/framework/vulkan/vkBinaryRegistry.cpp
d57bc1191f327c63ab3756f77ad75f54e74d387f 29-Oct-2016 Pyry Haulos <phaulos@google.com> Reuse binary indices when rebuilding SPIR-V binaries

When prebuilt SPIR-V binaries are stored in a version control system,
we want to minimize churn (rewritten files) when updating binaries in
response to test or compiler changes.

This change makes vk::BinaryRegistyWriter significantly smarter when
updating binary registry. Old binary files (and thus indices) are
reused if possible. Any newly unused binaries are removed, and new
indices are allocated only for binaries that haven't been present
before.

Change-Id: Ieac61ff32821e4381480dd56ff27dbcdd44e50cb
/external/deqp/external/vulkancts/framework/vulkan/vkBinaryRegistry.cpp
978d3d585aa549eb1e729b51e9d85fc6477240f9 29-Mar-2016 Pyry Haulos <phaulos@google.com> Change Vulkan CTS license to Apache 2
/external/deqp/external/vulkancts/framework/vulkan/vkBinaryRegistry.cpp
3b9dcc5bfd3b622b8fa0a75d88d205a425dd3603 10-Mar-2016 Pyry Haulos <phaulos@google.com> Clean up SPIR-V support code in framework

* Return result codes instead of exceptions when GLSL compilation or
assembling fails. Reserve exceptions for unexpected errors.

* Move vk::disassembleSpirV() to vkSpirVAsm.cpp/hpp.

* Use deUint32 vectors/pointers for passing around SPIR-V binary data.
Consolidate endianness handling to vkPrograms.cpp.

* Log disassembled GLSL shaders as <SpirVAssemblySource>.

* Enable validation for glslang-generated SPIR-V binaries. Requires
updating both glslang and spirv-tools.

* Clean up vk::SpirVAsmSource and vk::SpirVProgramInfo.

* Clean up some potential resource leaks in spirv-tools integration.

* Add --validate-spv option to vk-build-programs.

Change-Id: I0d5683c83c16b3e6d794e284c17ed65ea9541a35
/external/deqp/external/vulkancts/framework/vulkan/vkBinaryRegistry.cpp
9a869c2848d0419008cb99f72c9fa372e3af805d 09-Feb-2016 Pyry Haulos <phaulos@google.com> Remove confidentiality clause from Vulkan CTS license
/external/deqp/external/vulkancts/framework/vulkan/vkBinaryRegistry.cpp
b10f41aed29c5cb350ef7091ff3cfa165426e9ba 12-Nov-2015 Pyry Haulos <phaulos@google.com> Improve prebuilt SPIR-V binary storage

This change improves storage usage of pre-built SPIR-V binary registry
by eliminating duplicate binaries. With the current test set the size of
binary registry drops from almost 400MiB down to 25MiB.

A binary index file (trie) is used to map from binary identifiers to
actual binary files.

Change-Id: I09b015c00bd30df00e7cf96a39549ddbb66ece61
/external/deqp/external/vulkancts/framework/vulkan/vkBinaryRegistry.cpp
ec3a83e55968974cbdcfb1c1981dc4476ff3d338 04-Aug-2015 Pyry Haulos <phaulos@google.com> Use different naming scheme for SPIR-V binaries

Using full test case path resulted in too long file names. Translate
test case path into directory path instead, for example
dEQP-VK/api/triangle/vert.spv

Change-Id: I4491c35cd7e98b38964a38efb3c6daed91ca7479
/external/deqp/external/vulkancts/framework/vulkan/vkBinaryRegistry.cpp
846cc3ce8e721a972ef38c44e24da49ea96110ca 29-Jun-2015 Pyry Haulos <phaulos@google.com> Move Vulkan code to external/vulkancts and change license

Vulkan-specific test and framework code uses MIT license with additional
temporary confidentiality clause.

Change-Id: I4f468ab5e8aeaa1d822dee0c8357a6d5aed08407
/external/deqp/external/vulkancts/framework/vulkan/vkBinaryRegistry.cpp