You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Code/Tools/HLSLCrossCompilerMETAL
alexpete 8469c9ca0a Integrating github/staging through commit 5f214be 5 years ago
..
Platform Initial commit 5 years ago
bin/win32 Initial commit 5 years ago
include Integrating github/staging through commit 5f214be 5 years ago
jni Initial commit 5 years ago
lib Initial commit 5 years ago
offline Integrating github/staging through commit ab87ed9 5 years ago
src Integrating github/staging through commit ab87ed9 5 years ago
CMakeLists.txt Initial commit 5 years ago
README Initial commit 5 years ago
hlslcc_metal_files.cmake Initial commit 5 years ago
license.txt Initial commit 5 years ago

README

What does this software do?
  Cross compiles HLSL bytecode to GLSL or GLSL ES. It also provides functions to
  decode the reflection information embedded in HLSL bytecode. Both offline and online compiliation
  is supported.

Supported bytecode formats:
  cs_4_0 cs_4_1 cs_5_0
  ds_5_0
  hs_5_0
  gs_4_0 gs_4_1 gs_5_0
  ps_4_0 ps_4_0_level_9_1 ps_4_0_level_9_3 ps_4_0_level_9_0 ps_4_1 ps_5_0
  vs_4_0_level_9_3 vs_4_0_level_9_0 vs_4_1 vs_5_0   

Work is underway to support the DX9 bytecode formats:
  ps_2_0 ps_2_a ps_2_b ps_3_0
  vs_1_1 vs_2_0 vs_2_a vs_3_0
  
Supported target languages:
  GLSL ES 100
  GLSL ES 300
  GLSL ES 310
  GLSL 120
  GLSL 130
  GLSL 140
  GLSL 150
  GLSL 330
  GLSL 400
  GLSL 410
  GLSL 420
  GLSL 430
  GLSL 440
  METAL

I have plans to add support for more target languages including:
  ARB assembly (ARB_vertex_program et al.)
  NVIDIA assembly (NV_vertex_program et al.)

If the source shader contains instructions not support by the target language then compilation is allowed
to fail at the GLSL compile stage, i.e. the cross compiler may not generate errors/warnings but an OpenGL
driver will reject the shader.

The tests directory contains HLSL, bytecode and asm versions of some shaders used to verify this decoder.
There are also a few sample applications used to make sure that generated GLSL is correct.

A cmake makefile can be found in the mk directory.

Generating hlsl_opcode_funcs_glsl.h
  Use fwrap.py -f hlsl_opcode_funcs.glsl
  fwrap.py can be found in my Helpful-scripts github repository.

For further information please see the Wiki page for this project at
https://github.com/James-Jones/HLSLCrossCompiler/wiki.