summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHai Nguyen <chaoticbob@me.com>2020-12-07 11:22:21 -0500
committerHai Nguyen <chaoticbob@me.com>2020-12-07 11:22:21 -0500
commitfcf82e41d15db90b1cec583c1f6913bec1a9dd84 (patch)
treec57eaaf8c28b77093e80fdcda54363ac0acf8591
parent6ce4459688de64621a1c8c975b4cbb8bcca89078 (diff)
downloadSPIRV-Reflect-fcf82e41d15db90b1cec583c1f6913bec1a9dd84.tar.gz
Made C++ noncopyable and upated tests
- Made spv_reflect::ShaderModule noncopyable. - Updated tests missed on last commit. - Suppressed warnings caused by not having _CRT_SECURE_NO_WARNINGS on WIN32.
-rw-r--r--CMakeLists.txt40
-rw-r--r--examples/CMakeLists.txt3
-rw-r--r--spirv_reflect.h5
-rw-r--r--tests/build_golden_yaml.py1
-rw-r--r--tests/cpp/noncopyable/CMakeLists.txt17
-rw-r--r--tests/cpp/noncopyable/main.cpp8
-rw-r--r--tests/raytrace/rayquery_init_rahit.spv.yaml2
-rw-r--r--tests/raytrace/rayquery_init_rcall.spv.yaml2
-rw-r--r--tests/raytrace/rayquery_init_rchit.spv.yaml2
-rw-r--r--tests/raytrace/rayquery_init_rgen.spv.yaml2
-rw-r--r--tests/raytrace/rayquery_init_rmiss.spv.yaml2
-rw-r--r--tests/raytrace/raytracing.khr.closesthit.spv.yaml2
-rw-r--r--tests/raytrace/raytracing.nv.anyhit.spv.yaml2
-rw-r--r--tests/raytrace/raytracing.nv.callable.spv.yaml2
-rw-r--r--tests/raytrace/raytracing.nv.closesthit.spv.yaml2
-rw-r--r--tests/raytrace/raytracing.nv.enum.spv.yaml2
-rw-r--r--tests/raytrace/raytracing.nv.intersection.spv.yaml2
-rw-r--r--tests/raytrace/raytracing.nv.library.spv.yaml2
-rw-r--r--tests/raytrace/raytracing.nv.miss.spv.yaml2
-rw-r--r--tests/raytrace/raytracing.nv.raygen.spv.yaml2
20 files changed, 67 insertions, 35 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bae0ab9..e42cfb7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,26 +39,26 @@ add_subdirectory(util/stripper)
install(TARGETS spirv-reflect RUNTIME DESTINATION bin)
if (SPIRV_REFLECT_BUILD_TESTS)
- message("Tests are enabled!")
- SET(BUILD_GMOCK OFF CACHE BOOL "Builds the googlemock subproject" FORCE)
- SET(BUILD_GTEST ON CACHE BOOL "Builds the googletest subproject" FORCE)
- SET(INSTALL_GTEST OFF CACHE BOOL "Enable installation of googletest. (Projects embedding googletest generally turn this OFF.)" FORCE)
- SET(gtest_force_shared_crt ON CACHE BOOL "Enable DLL for C runtime libraries on Windows" FORCE)
+ message("Tests are enabled!")
+ SET(BUILD_GMOCK OFF CACHE BOOL "Builds the googlemock subproject" FORCE)
+ SET(BUILD_GTEST ON CACHE BOOL "Builds the googletest subproject" FORCE)
+ SET(INSTALL_GTEST OFF CACHE BOOL "Enable installation of googletest. (Projects embedding googletest generally turn this OFF.)" FORCE)
+ SET(gtest_force_shared_crt ON CACHE BOOL "Enable DLL for C runtime libraries on Windows" FORCE)
- add_subdirectory(third_party/googletest)
+ add_subdirectory(third_party/googletest)
add_executable(test-spirv-reflect ${CMAKE_CURRENT_SOURCE_DIR}/tests/test-spirv-reflect.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.h
- ${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.c
- ${CMAKE_CURRENT_SOURCE_DIR}/common/output_stream.h
- ${CMAKE_CURRENT_SOURCE_DIR}/common/output_stream.cpp)
- set_target_properties(test-spirv-reflect PROPERTIES
- RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- CXX_STANDARD 11)
- target_compile_definitions(test-spirv-reflect PRIVATE
- $<$<CXX_COMPILER_ID:MSVC>:_CRT_SECURE_NO_WARNINGS>)
- target_link_libraries(test-spirv-reflect gtest_main)
- target_include_directories(test-spirv-reflect PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
- add_custom_command(TARGET test-spirv-reflect POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${CMAKE_CURRENT_SOURCE_DIR}/tests ${CMAKE_CURRENT_BINARY_DIR}/tests)
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/common/output_stream.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/common/output_stream.cpp)
+ set_target_properties(test-spirv-reflect PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ CXX_STANDARD 11)
+ target_compile_definitions(test-spirv-reflect PRIVATE
+ $<$<CXX_COMPILER_ID:MSVC>:_CRT_SECURE_NO_WARNINGS>)
+ target_link_libraries(test-spirv-reflect gtest_main)
+ target_include_directories(test-spirv-reflect PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
+ add_custom_command(TARGET test-spirv-reflect POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ ${CMAKE_CURRENT_SOURCE_DIR}/tests ${CMAKE_CURRENT_BINARY_DIR}/tests)
endif()
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 90711e0..6592df1 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -26,6 +26,7 @@ if (${VULKAN_DIR_FOUND})
set_target_properties(descriptors PROPERTIES CXX_STANDARD 11)
endif()
if(WIN32)
+ target_compile_definitions(descriptors PRIVATE _CRT_SECURE_NO_WARNINGS)
set_target_properties(descriptors PROPERTIES FOLDER "examples")
endif()
@@ -40,6 +41,7 @@ if (${VULKAN_DIR_FOUND})
set_target_properties(io_variables PROPERTIES CXX_STANDARD 11)
endif()
if(WIN32)
+ target_compile_definitions(io_variables PRIVATE _CRT_SECURE_NO_WARNINGS)
set_target_properties(io_variables PROPERTIES FOLDER "examples")
endif()
@@ -54,5 +56,6 @@ if (${VULKAN_DIR_FOUND})
set_target_properties(hlsl_resource_types PROPERTIES CXX_STANDARD 11)
endif()
if(WIN32)
+ target_compile_definitions(hlsl_resource_types PRIVATE _CRT_SECURE_NO_WARNINGS)
set_target_properties(hlsl_resource_types PROPERTIES FOLDER "examples")
endif() \ No newline at end of file
diff --git a/spirv_reflect.h b/spirv_reflect.h
index 2011f34..1220d18 100644
--- a/spirv_reflect.h
+++ b/spirv_reflect.h
@@ -1438,6 +1438,11 @@ public:
SpvReflectResult ChangeOutputVariableLocation(const SpvReflectInterfaceVariable* p_output_variable, uint32_t new_location);
private:
+ // Make noncopyable
+ ShaderModule(const ShaderModule&);
+ ShaderModule& operator=(const ShaderModule&);
+
+private:
mutable SpvReflectResult m_result = SPV_REFLECT_RESULT_NOT_READY;
SpvReflectShaderModule m_module = {};
};
diff --git a/tests/build_golden_yaml.py b/tests/build_golden_yaml.py
index 6513bb1..e6a9296 100644
--- a/tests/build_golden_yaml.py
+++ b/tests/build_golden_yaml.py
@@ -36,7 +36,6 @@ reflection code or the test shaders.
spv_paths = []
for root, dirs, files in os.walk("."):
- print dirs
for f in files:
base, ext = os.path.splitext(f)
if ext.lower() == ".spv":
diff --git a/tests/cpp/noncopyable/CMakeLists.txt b/tests/cpp/noncopyable/CMakeLists.txt
new file mode 100644
index 0000000..f52f926
--- /dev/null
+++ b/tests/cpp/noncopyable/CMakeLists.txt
@@ -0,0 +1,17 @@
+cmake_minimum_required(VERSION 3.1)
+
+project(noncopyable)
+
+list(APPEND SPIRV_REFLECT_FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../spirv_reflect.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../spirv_reflect.c
+)
+
+add_executable(noncopyable ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ${COMMON_FILES} ${SPIRV_REFLECT_FILES})
+target_include_directories(noncopyable PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
+set_target_properties(noncopyable PROPERTIES CXX_STANDARD 11)
+
+if(WIN32)
+ target_compile_definitions(noncopyable PRIVATE _CRT_SECURE_NO_WARNINGS)
+ set_target_properties(noncopyable PROPERTIES FOLDER "tests")
+endif()
diff --git a/tests/cpp/noncopyable/main.cpp b/tests/cpp/noncopyable/main.cpp
new file mode 100644
index 0000000..4426fad
--- /dev/null
+++ b/tests/cpp/noncopyable/main.cpp
@@ -0,0 +1,8 @@
+#include "spirv_reflect.h"
+
+int main(int argc, char** argv)
+{
+ spv_reflect::ShaderModule shaderModule;
+ shaderModule = spv_reflect::ShaderModule();
+ return 0;
+} \ No newline at end of file
diff --git a/tests/raytrace/rayquery_init_rahit.spv.yaml b/tests/raytrace/rayquery_init_rahit.spv.yaml
index 7eb0b59..7d392e9 100644
--- a/tests/raytrace/rayquery_init_rahit.spv.yaml
+++ b/tests/raytrace/rayquery_init_rahit.spv.yaml
@@ -59,7 +59,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5315 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00000200 # ANY_HIT
descriptor_binding_count: 1
descriptor_bindings:
- *db0 # "AccelerationStructure"
diff --git a/tests/raytrace/rayquery_init_rcall.spv.yaml b/tests/raytrace/rayquery_init_rcall.spv.yaml
index b166852..59cb416 100644
--- a/tests/raytrace/rayquery_init_rcall.spv.yaml
+++ b/tests/raytrace/rayquery_init_rcall.spv.yaml
@@ -59,7 +59,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5317 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00000800 # MISS
descriptor_binding_count: 1
descriptor_bindings:
- *db0 # "AccelerationStructure"
diff --git a/tests/raytrace/rayquery_init_rchit.spv.yaml b/tests/raytrace/rayquery_init_rchit.spv.yaml
index 53b6f02..e30ba5f 100644
--- a/tests/raytrace/rayquery_init_rchit.spv.yaml
+++ b/tests/raytrace/rayquery_init_rchit.spv.yaml
@@ -59,7 +59,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5316 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00000400 # CLOSEST_HIT
descriptor_binding_count: 1
descriptor_bindings:
- *db0 # "AccelerationStructure"
diff --git a/tests/raytrace/rayquery_init_rgen.spv.yaml b/tests/raytrace/rayquery_init_rgen.spv.yaml
index bc4aa0d..58d2f67 100644
--- a/tests/raytrace/rayquery_init_rgen.spv.yaml
+++ b/tests/raytrace/rayquery_init_rgen.spv.yaml
@@ -59,7 +59,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5313 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00000100 # RAYGEN
descriptor_binding_count: 1
descriptor_bindings:
- *db0 # "AccelerationStructure"
diff --git a/tests/raytrace/rayquery_init_rmiss.spv.yaml b/tests/raytrace/rayquery_init_rmiss.spv.yaml
index b166852..59cb416 100644
--- a/tests/raytrace/rayquery_init_rmiss.spv.yaml
+++ b/tests/raytrace/rayquery_init_rmiss.spv.yaml
@@ -59,7 +59,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5317 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00000800 # MISS
descriptor_binding_count: 1
descriptor_bindings:
- *db0 # "AccelerationStructure"
diff --git a/tests/raytrace/raytracing.khr.closesthit.spv.yaml b/tests/raytrace/raytracing.khr.closesthit.spv.yaml
index 4bbd909..dfeb179 100644
--- a/tests/raytrace/raytracing.khr.closesthit.spv.yaml
+++ b/tests/raytrace/raytracing.khr.closesthit.spv.yaml
@@ -414,7 +414,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5316 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00000400 # CLOSEST_HIT
descriptor_binding_count: 1
descriptor_bindings:
- *db0 # "rs"
diff --git a/tests/raytrace/raytracing.nv.anyhit.spv.yaml b/tests/raytrace/raytracing.nv.anyhit.spv.yaml
index 38eef3f..0a3e85d 100644
--- a/tests/raytrace/raytracing.nv.anyhit.spv.yaml
+++ b/tests/raytrace/raytracing.nv.anyhit.spv.yaml
@@ -348,7 +348,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5315 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00000200 # ANY_HIT
descriptor_binding_count: 0
descriptor_bindings:
descriptor_set_count: 0
diff --git a/tests/raytrace/raytracing.nv.callable.spv.yaml b/tests/raytrace/raytracing.nv.callable.spv.yaml
index 17dd84f..363bee2 100644
--- a/tests/raytrace/raytracing.nv.callable.spv.yaml
+++ b/tests/raytrace/raytracing.nv.callable.spv.yaml
@@ -64,7 +64,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5318 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00002000 # CALLABLE
descriptor_binding_count: 0
descriptor_bindings:
descriptor_set_count: 0
diff --git a/tests/raytrace/raytracing.nv.closesthit.spv.yaml b/tests/raytrace/raytracing.nv.closesthit.spv.yaml
index 86f9add..8f4d83b 100644
--- a/tests/raytrace/raytracing.nv.closesthit.spv.yaml
+++ b/tests/raytrace/raytracing.nv.closesthit.spv.yaml
@@ -396,7 +396,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5316 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00000400 # CLOSEST_HIT
descriptor_binding_count: 1
descriptor_bindings:
- *db0 # "rs"
diff --git a/tests/raytrace/raytracing.nv.enum.spv.yaml b/tests/raytrace/raytracing.nv.enum.spv.yaml
index 825e7ec..51b943a 100644
--- a/tests/raytrace/raytracing.nv.enum.spv.yaml
+++ b/tests/raytrace/raytracing.nv.enum.spv.yaml
@@ -112,7 +112,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5313 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00000100 # RAYGEN
descriptor_binding_count: 1
descriptor_bindings:
- *db0 # "rs"
diff --git a/tests/raytrace/raytracing.nv.intersection.spv.yaml b/tests/raytrace/raytracing.nv.intersection.spv.yaml
index 95b57c4..7cfa2aa 100644
--- a/tests/raytrace/raytracing.nv.intersection.spv.yaml
+++ b/tests/raytrace/raytracing.nv.intersection.spv.yaml
@@ -330,7 +330,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5314 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00001000 # INTERSECTION
descriptor_binding_count: 0
descriptor_bindings:
descriptor_set_count: 0
diff --git a/tests/raytrace/raytracing.nv.library.spv.yaml b/tests/raytrace/raytracing.nv.library.spv.yaml
index f39b601..311f2ec 100644
--- a/tests/raytrace/raytracing.nv.library.spv.yaml
+++ b/tests/raytrace/raytracing.nv.library.spv.yaml
@@ -396,7 +396,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5313 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00000100 # RAYGEN
descriptor_binding_count: 1
descriptor_bindings:
- *db0 # "rs"
diff --git a/tests/raytrace/raytracing.nv.miss.spv.yaml b/tests/raytrace/raytracing.nv.miss.spv.yaml
index 37e738e..7157294 100644
--- a/tests/raytrace/raytracing.nv.miss.spv.yaml
+++ b/tests/raytrace/raytracing.nv.miss.spv.yaml
@@ -187,7 +187,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5317 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00000800 # MISS
descriptor_binding_count: 0
descriptor_bindings:
descriptor_set_count: 0
diff --git a/tests/raytrace/raytracing.nv.raygen.spv.yaml b/tests/raytrace/raytracing.nv.raygen.spv.yaml
index 825e7ec..51b943a 100644
--- a/tests/raytrace/raytracing.nv.raygen.spv.yaml
+++ b/tests/raytrace/raytracing.nv.raygen.spv.yaml
@@ -112,7 +112,7 @@ module:
source_language: 5 # HLSL
source_language_version: 630
spirv_execution_model: 5313 # ???
- shader_stage: 0x00000000 # ???
+ shader_stage: 0x00000100 # RAYGEN
descriptor_binding_count: 1
descriptor_bindings:
- *db0 # "rs"