From 58a67e4e0a88e52d71eef5d08df1465f7ac610ae Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 28 Oct 2019 16:37:57 +0100 Subject: rhi: Move to CBOR in QShader and expand the autotest Binary JSON is said to become deprecated. Therefore, add support for CBOR. Binary JSON is still supported for deserialization, so all existing .qsb files will continue to work, as long as the binaryjson feature is enabled in the Qt build. Also makes QShaderDescription comparable. This is important for tests in particular. A nice side effect of using CBOR is that .qsb files become smaller. For a typical Qt Quick material shader this can mean a reduction of 300 bytes or more. Task-number: QTBUG-79576 Change-Id: I5547c0266e3e8128c9653e954e47487352267f71 Reviewed-by: Paul Olav Tvete --- tests/auto/gui/rhi/qshader/data/README | 15 +++++++++++++++ tests/auto/gui/rhi/qshader/data/color.vert.qsb | Bin 1847 -> 0 bytes tests/auto/gui/rhi/qshader/data/color_all_v1.vert.qsb | Bin 0 -> 1847 bytes tests/auto/gui/rhi/qshader/data/color_simple.vert.qsb | Bin 813 -> 0 bytes tests/auto/gui/rhi/qshader/data/color_spirv_v1.vert.qsb | Bin 0 -> 813 bytes tests/auto/gui/rhi/qshader/data/texture.frag | 16 ++++++++++++++++ tests/auto/gui/rhi/qshader/data/texture_all_v2.frag.qsb | Bin 0 -> 1691 bytes tests/auto/gui/rhi/qshader/data/texture_all_v3.frag.qsb | Bin 0 -> 1432 bytes 8 files changed, 31 insertions(+) create mode 100644 tests/auto/gui/rhi/qshader/data/README delete mode 100644 tests/auto/gui/rhi/qshader/data/color.vert.qsb create mode 100644 tests/auto/gui/rhi/qshader/data/color_all_v1.vert.qsb delete mode 100644 tests/auto/gui/rhi/qshader/data/color_simple.vert.qsb create mode 100644 tests/auto/gui/rhi/qshader/data/color_spirv_v1.vert.qsb create mode 100644 tests/auto/gui/rhi/qshader/data/texture.frag create mode 100644 tests/auto/gui/rhi/qshader/data/texture_all_v2.frag.qsb create mode 100644 tests/auto/gui/rhi/qshader/data/texture_all_v3.frag.qsb (limited to 'tests/auto/gui/rhi/qshader/data') diff --git a/tests/auto/gui/rhi/qshader/data/README b/tests/auto/gui/rhi/qshader/data/README new file mode 100644 index 0000000000..3d89f2a0c5 --- /dev/null +++ b/tests/auto/gui/rhi/qshader/data/README @@ -0,0 +1,15 @@ +Warning: Do NOT regenerate the .qsb files without proper planning and understanding +the following. + +Among other things, we are also testing backwards compatibility for QShader +deserialization. + +.qsb files with _v1 in the name were produced with an older qtshadertools +and have a QSB_VERSION of 1. + +Files with _v2 are generated with a newer qsb, those have QSB_VERSION 2. +The difference is the support for nativeResourceBindingMap() which is only +present in v2. + +Files with _v3 come from an even newer qsb, and have QSB_VERSION 3. The +difference to 2 is the use of CBOR instead of binary JSON for QShaderDescription. diff --git a/tests/auto/gui/rhi/qshader/data/color.vert.qsb b/tests/auto/gui/rhi/qshader/data/color.vert.qsb deleted file mode 100644 index 7d02d823d2..0000000000 Binary files a/tests/auto/gui/rhi/qshader/data/color.vert.qsb and /dev/null differ diff --git a/tests/auto/gui/rhi/qshader/data/color_all_v1.vert.qsb b/tests/auto/gui/rhi/qshader/data/color_all_v1.vert.qsb new file mode 100644 index 0000000000..7d02d823d2 Binary files /dev/null and b/tests/auto/gui/rhi/qshader/data/color_all_v1.vert.qsb differ diff --git a/tests/auto/gui/rhi/qshader/data/color_simple.vert.qsb b/tests/auto/gui/rhi/qshader/data/color_simple.vert.qsb deleted file mode 100644 index c82ba7e8e7..0000000000 Binary files a/tests/auto/gui/rhi/qshader/data/color_simple.vert.qsb and /dev/null differ diff --git a/tests/auto/gui/rhi/qshader/data/color_spirv_v1.vert.qsb b/tests/auto/gui/rhi/qshader/data/color_spirv_v1.vert.qsb new file mode 100644 index 0000000000..c82ba7e8e7 Binary files /dev/null and b/tests/auto/gui/rhi/qshader/data/color_spirv_v1.vert.qsb differ diff --git a/tests/auto/gui/rhi/qshader/data/texture.frag b/tests/auto/gui/rhi/qshader/data/texture.frag new file mode 100644 index 0000000000..bd22f817e0 --- /dev/null +++ b/tests/auto/gui/rhi/qshader/data/texture.frag @@ -0,0 +1,16 @@ +#version 440 + +layout(location = 0) in vec2 qt_TexCoord; +layout(location = 0) out vec4 fragColor; + +layout(std140, binding = 0) uniform buf { + mat4 qt_Matrix; + float opacity; +} ubuf; + +layout(binding = 1) uniform sampler2D qt_Texture; + +void main() +{ + fragColor = texture(qt_Texture, qt_TexCoord) * ubuf.opacity; +} diff --git a/tests/auto/gui/rhi/qshader/data/texture_all_v2.frag.qsb b/tests/auto/gui/rhi/qshader/data/texture_all_v2.frag.qsb new file mode 100644 index 0000000000..79f5486945 Binary files /dev/null and b/tests/auto/gui/rhi/qshader/data/texture_all_v2.frag.qsb differ diff --git a/tests/auto/gui/rhi/qshader/data/texture_all_v3.frag.qsb b/tests/auto/gui/rhi/qshader/data/texture_all_v3.frag.qsb new file mode 100644 index 0000000000..b6e49aa03d Binary files /dev/null and b/tests/auto/gui/rhi/qshader/data/texture_all_v3.frag.qsb differ -- cgit v1.2.3