Example application for subpasses in Vulkan.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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