Integrate PowerVR OpenGL ES samples Also add some additional Vulkan samples to the 'good' set. Bug: b/141361933 Change-Id: I32fe2d691ca2fd176a8c470fdb34b25a55840cd6 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/42389 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Tested-by: Nicolas Capens <nicolascapens@google.com> Reviewed-by: Antonio Maiorano <amaiorano@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt index e64a136..14ca570 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -1368,38 +1368,38 @@ if(SWIFTSHADER_BUILD_SAMPLES) if(WIN32) - add_executable(OGLES2HelloAPI ${HELLO2_DIR}/OGLES2HelloAPI_Windows.cpp) - set_target_properties(OGLES2HelloAPI PROPERTIES + add_executable(Legacy_OGLES2HelloAPI ${HELLO2_DIR}/OGLES2HelloAPI_Windows.cpp) + set_target_properties(Legacy_OGLES2HelloAPI PROPERTIES INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include" COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}" COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES" FOLDER "Samples" ) - target_link_libraries(OGLES2HelloAPI libEGL libGLESv2) - set_property(TARGET OGLES2HelloAPI APPEND_STRING PROPERTY LINK_FLAGS "/SUBSYSTEM:WINDOWS") - set(CMAKE_DEFAULT_STARTUP_PROJECT OGLES2HelloAPI) + target_link_libraries(Legacy_OGLES2HelloAPI libEGL libGLESv2) + set_property(TARGET Legacy_OGLES2HelloAPI APPEND_STRING PROPERTY LINK_FLAGS "/SUBSYSTEM:WINDOWS") + set(CMAKE_DEFAULT_STARTUP_PROJECT Legacy_OGLES2HelloAPI) elseif(LINUX) - add_executable(OGLES2HelloAPI ${HELLO2_DIR}/OGLES2HelloAPI_LinuxX11.cpp) - set_target_properties(OGLES2HelloAPI PROPERTIES + add_executable(Legacy_OGLES2HelloAPI ${HELLO2_DIR}/OGLES2HelloAPI_LinuxX11.cpp) + set_target_properties(Legacy_OGLES2HelloAPI PROPERTIES INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include" COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}" COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES" LINK_FLAGS "${SWIFTSHADER_LINK_FLAGS}" ) - target_link_libraries(OGLES2HelloAPI dl ${X11} libEGL libGLESv2) # Explicitly link our "lib*" targets, not the platform provided "EGL" and "GLESv2" + target_link_libraries(Legacy_OGLES2HelloAPI dl ${X11} libEGL libGLESv2) # Explicitly link our "lib*" targets, not the platform provided "EGL" and "GLESv2" elseif(APPLE) - add_executable(OGLES2HelloAPI MACOSX_BUNDLE + add_executable(Legacy_OGLES2HelloAPI MACOSX_BUNDLE ${HELLO2_DIR}/OGLES2HelloAPI_OSX.mm ${HELLO2_DIR}/Build/OSX/en.lproj/MainMenu.xib ) - set_target_properties(OGLES2HelloAPI PROPERTIES + set_target_properties(Legacy_OGLES2HelloAPI PROPERTIES INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include" COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS};-Wno-deprecated-declarations" # 'NSTitledWindowMask', 'NSClosableWindowMask' is deprecated COMPILE_DEFINITIONS "GL_GLEXT_PROTOTYPES" LINK_FLAGS "${SWIFTSHADER_LINK_FLAGS}" MACOSX_BUNDLE_INFO_PLIST "${HELLO2_DIR}/Build/OSX/Info.plist" ) - target_link_libraries(OGLES2HelloAPI libEGL libGLESv2 ${OS_LIBS} ${SWIFTSHADER_LIBS}) + target_link_libraries(Legacy_OGLES2HelloAPI libEGL libGLESv2 ${OS_LIBS}) set_source_files_properties(${HELLO2_DIR}/Build/OSX/en.lproj/MainMenu.xib PROPERTIES MACOSX_PACKAGE_LOCATION "Resources" ) @@ -1557,40 +1557,75 @@ POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> ${CMAKE_BINARY_DIR}/bin/${VULKAN_API_LIBRARY_NAME} ) + add_custom_command( + TARGET libGLESv2 + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libGLESv2> ${CMAKE_BINARY_DIR}/bin/$<TARGET_FILE_NAME:libGLESv2> + ) + add_custom_command( + TARGET libEGL + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libEGL> ${CMAKE_BINARY_DIR}/bin/$<TARGET_FILE_NAME:libEGL> + ) endif() # Samples known to work well set(PVR_VULKAN_TARGET_GOOD VulkanBumpmap + VulkanExampleUI + VulkanGaussianBlur VulkanGlass VulkanGnomeHorde VulkanHelloAPI VulkanImageBasedLighting + VulkanIntroducingPVRUtils VulkanMultiSampling + VulkanNavigation2D + VulkanParticleSystem VulkanSkinning ) + set(PVR_GLES_TARGET_GOOD + OpenGLESHelloAPI + OpenGLESIntroducingPVRUtils + OpenGLESNavigation2D + ) + set(PVR_VULKAN_TARGET_OTHER VulkanDeferredShading VulkanDeferredShadingPFX - VulkanExampleUI VulkanGameOfLife - VulkanGaussianBlur VulkanIBLMapsGenerator VulkanIMGTextureFilterCubic VulkanIntroducingPVRShell - VulkanIntroducingPVRUtils VulkanIntroducingPVRVk VulkanIntroducingUIRenderer VulkanMultithreading - VulkanNavigation2D VulkanNavigation3D - VulkanParticleSystem VulkanPostProcessing VulkanPVRScopeExample VulkanPVRScopeRemote ) + set(PVR_GLES_TARGET_OTHER + OpenGLESDeferredShading + OpenGLESGaussianBlur + OpenGLESImageBasedLighting + OpenGLESIMGFramebufferDownsample + OpenGLESIMGTextureFilterCubic + OpenGLESIntroducingPVRCamera + OpenGLESIntroducingPVRShell + OpenGLESIntroducingUIRenderer + OpenGLESMultiviewVR + OpenGLESNavigation3D + OpenGLESOpenCLExample + OpenGLESParticleSystem + OpenGLESPostProcessing + OpenGLESPVRScopeExample + OpenGLESPVRScopeRemote + OpenGLESSkinning + ) + set(PVR_TARGET_OTHER glslang glslangValidator @@ -1598,25 +1633,6 @@ OGLCompiler OSDependent OpenCLMatrixMultiplication - OpenGLESDeferredShading - OpenGLESGaussianBlur - OpenGLESHelloAPI - OpenGLESImageBasedLighting - OpenGLESIMGFramebufferDownsample - OpenGLESIMGTextureFilterCubic - OpenGLESIntroducingPVRCamera - OpenGLESIntroducingPVRShell - OpenGLESIntroducingPVRUtils - OpenGLESIntroducingUIRenderer - OpenGLESMultiviewVR - OpenGLESNavigation2D - OpenGLESNavigation3D - OpenGLESOpenCLExample - OpenGLESParticleSystem - OpenGLESPostProcessing - OpenGLESPVRScopeExample - OpenGLESPVRScopeRemote - OpenGLESSkinning pugixml PVRAssets PVRCamera @@ -1637,15 +1653,25 @@ ${PVR_VULKAN_TARGET_OTHER} ) + set(PVR_GLES_TARGET + ${PVR_GLES_TARGET_GOOD} + ${PVR_GLES_TARGET_OTHER} + ) + foreach(pvr_target ${PVR_VULKAN_TARGET}) add_dependencies(${pvr_target} vk_swiftshader) endforeach() - foreach(pvr_target ${PVR_VULKAN_TARGET_GOOD}) + foreach(pvr_target ${PVR_GLES_TARGET}) + add_dependencies(${pvr_target} libGLESv2) + add_dependencies(${pvr_target} libEGL) + endforeach() + + foreach(pvr_target ${PVR_VULKAN_TARGET_GOOD} ${PVR_GLES_TARGET_GOOD}) set_target_properties(${pvr_target} PROPERTIES FOLDER Samples) endforeach() - foreach(pvr_target ${PVR_TARGET_OTHER} ${PVR_VULKAN_TARGET_OTHER}) + foreach(pvr_target ${PVR_TARGET_OTHER} ${PVR_VULKAN_TARGET_OTHER} ${PVR_GLES_TARGET_OTHER}) set_target_properties(${pvr_target} PROPERTIES FOLDER Samples/PowerVR-Build) endforeach() endif() \ No newline at end of file