[graphics][compute]: Simplify hotsort target generation.

This CL simplifies the build rules associated with hotsort
and spinel target generation.

- Modify the hotsort_target() GN template definition to
  pass hotsort_gen configuration parameters through named
  variables (e.g. 'type_dwords', 'thread_regs', etc)
  instead of command-line flags that are more difficult
  to understand. So now, a target declaration looks like:

	hotsort_target("hs_amd_gcn3_u64") {
	  vendor = "amd"
	  type_dwords = 2
	  warp_lanes = 64
	  thread_regs = 8
	  smem_bs = 32768
	  smem_bc = 32768
	  warps_per_group = 16
	  warps_min = 1
	  warps_mod = 1
	  merge_flip_lo = 1
	  merge_flip_hi = 1
	  merge_half_lo = 1
	  merge_half_hi = 1
	  glsl_bindings = "1,0,1,0"
	  autotune = true
	}

  BONUS: This makes gn-format happier than the previous format!

- Each hotsort_target() GN target now provides a public_configs
  value that simplifies client usage. I.e. as long as your
  source_set() depends on a hotsort_target() target, its
  source code can directly include "<target_name>/hs_target.h".

  There is no need to chase the right include_dirs value for
  this include to work.

- Do the same for spinel_target() GN targets.

+ Simplify spinel_vk_context and spinel_vk_path_builder
  accordingly. Note that for now, all targets are still linked
  into the test programs themselves.

TEST: Rebuild with fx build src/graphics/lib/compute:tests

Change-Id: I39992ecff3c8639999eff0171fb897e14e1fcb43
8 files changed
tree: 0d3f0e41a8478d507f7b70d6bfac43d01668c664
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. peridot/
  9. products/
  10. scripts/
  11. sdk/
  12. src/
  13. third_party/
  14. tools/
  15. zircon/
  16. .clang-format
  17. .clang-tidy
  18. .dir-locals.el
  19. .gitattributes
  20. .gitignore
  21. .gn
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. README.md
  30. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See the documentation.