Binary that renders a triangle using Vulkan, scans the resulting image to a PNG, and makes an occlusion query to determine the number of fragments shaded. To be used in developing Turnip.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. NAME = occlusion
  19. CFLAGS = -std=c++17 --sysroot="$(SYSROOT)" -Wall
  20. LDFLAGS = -lvulkan -lpng
  21. all: build deploy run
  22. build: check
  23. @echo Building...
  24. @$(CXX) $(CFLAGS) -o ${NAME} ${NAME}.cc $(LDFLAGS)
  25. deploy: check
  26. ifneq ($(target), local)
  27. @echo Deploying to $(SSH_DUT)...
  28. @scp ${NAME}.vert.spv $(SSH_DUT):~/${NAME}.vert.spv
  29. @scp ${NAME}.frag.spv $(SSH_DUT):~/${NAME}.frag.spv
  30. @scp ${NAME} $(SSH_DUT):~/
  31. endif
  32. run: check
  33. ifneq ($(target), local)
  34. @echo Running on $(SSH_DUT)...
  35. @ssh $(SSH_DUT) '~/${NAME}'
  36. @echo Copying artifacts back to local device...
  37. @scp $(SSH_DUT):~/${NAME}.png .
  38. else
  39. @echo Running locally...
  40. @./$(NAME)
  41. endif
  42. shaders:
  43. @glslc -c ${NAME}.vert
  44. @glslc -c ${NAME}.frag
  45. clean: check
  46. @rm -f ${NAME}
  47. @rm -f ${NAME}.png
  48. @rm -f ${NAME}.vert.spv
  49. @rm -f ${NAME}.frag.spv
  50. ifneq ($(target), local)
  51. @ssh $(SSH_DUT) 'rm -f ~/${NAME} ~/${NAME}.png'
  52. endif
  53. check:
  54. ifeq ($(CXX), INVALID)
  55. $(error $$target must be one of [atlas, cheza, local] )
  56. endif