diff options
author | Hai Nguyen <chaoticbob@me.com> | 2020-12-07 11:22:21 -0500 |
---|---|---|
committer | Hai Nguyen <chaoticbob@me.com> | 2020-12-07 11:22:21 -0500 |
commit | fcf82e41d15db90b1cec583c1f6913bec1a9dd84 (patch) | |
tree | c57eaaf8c28b77093e80fdcda54363ac0acf8591 | |
parent | 6ce4459688de64621a1c8c975b4cbb8bcca89078 (diff) | |
download | SPIRV-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.
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" |