Example application for subpasses in Vulkan.
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

Makefile 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. ifeq ($(target), cheza)
  2. CXX = /usr/bin/armv7a-cros-linux-gnueabihf-clang++
  3. CC = /usr/bin/armv7a-cros-linux-gnueabihf-clang
  4. SYSROOT = /build/cheza
  5. SSH_DUT = cheza
  6. else ifeq ($(target), atlas)
  7. CXX = /usr/bin/x86_64-cros-linux-gnu-clang++
  8. CC = /usr/bin/x86_64-cros-linux-gnu-clang
  9. SYSROOT = /build/atlas
  10. SSH_DUT = atlas
  11. else ifeq ($(target), local)
  12. CXX = clang++
  13. CC = clang
  14. else
  15. CXX = INVALID
  16. CC = INVALID
  17. endif
  18. SUBDIR = "subpass/"
  19. NAME = subpass
  20. FIRST_SUBPASS = draw
  21. SECOND_SUBPASS = darken
  22. CFLAGS = -std=c++17 --sysroot="$(SYSROOT)" -Wall
  23. LDFLAGS = -lvulkan -lpng
  24. all: build deploy run
  25. build: check
  26. @echo Building...
  27. @$(CXX) $(CFLAGS) -o ${NAME} ${NAME}.cc $(LDFLAGS)
  28. deploy: check
  29. ifneq ($(target), local)
  30. @echo Deploying to $(SSH_DUT)...
  31. @scp ${FIRST_SUBPASS}.vert.spv $(SSH_DUT):~/${SUBDIR}${FIRST_SUBPASS}.vert.spv
  32. @scp ${FIRST_SUBPASS}.frag.spv $(SSH_DUT):~/${SUBDIR}${FIRST_SUBPASS}.frag.spv
  33. @scp ${SECOND_SUBPASS}.vert.spv $(SSH_DUT):~/${SUBDIR}${SECOND_SUBPASS}.vert.spv
  34. @scp ${SECOND_SUBPASS}.frag.spv $(SSH_DUT):~/${SUBDIR}${SECOND_SUBPASS}.frag.spv
  35. @scp ${NAME} $(SSH_DUT):~/${SUBDIR}
  36. endif
  37. run: check
  38. ifneq ($(target), local)
  39. @echo Running on $(SSH_DUT)...
  40. @ssh $(SSH_DUT) 'cd ~/${SUBDIR} && ./${NAME}'
  41. @echo Copying artifacts back to local device...
  42. @scp $(SSH_DUT):~/${SUBDIR}${NAME}.png .
  43. else
  44. @echo Running locally...
  45. @./$(NAME)
  46. endif
  47. shaders:
  48. @glslc -c ${FIRST_SUBPASS}.vert
  49. @glslc -c ${FIRST_SUBPASS}.frag
  50. @glslc -c ${SECOND_SUBPASS}.vert
  51. @glslc -c ${SECOND_SUBPASS}.frag
  52. clean: check
  53. @rm -f ${NAME} ${NAME}.png ${FIRST_SUBPASS}.vert.spv ${FIRST_SUBPASS}.frag.spv \
  54. ${SECOND_SUBPASS}.vert.spv ${SECOND_SUBPASS}.frag.spv
  55. ifneq ($(target), local)
  56. @ssh $(SSH_DUT) 'rm -f ~/${SUBDIR}${NAME} ~/${SUBDIR}${NAME}.png \
  57. ~/${SUBDIR}${FIRST_SUBPASS}.vert.spv ~/${SUBDIR}${FIRST_SUBPASS}.frag.spv' \
  58. ~/${SUBDIR}${SECOND_SUBPASS}.vert.spv ~/${SUBDIR}${SECOND_SUBPASS}.frag.spv'
  59. endif
  60. check:
  61. ifeq ($(CXX), INVALID)
  62. $(error $$target must be one of [atlas, cheza, local] )
  63. endif