-
Notifications
You must be signed in to change notification settings - Fork 81
Incomplete or missing features
ARB_gpu_shader_fp64
Some basic work done in this area. Main problem is that a single output register can be aliased to multiple streams.
HLSL registers are typeless. This allows bitwise operations on floating point for example. This has been reported as issue #8.
Not directly supported by GLSL
Performs a component-wise conditional swap of the values between two input registers.
Reflection code is incomplete. Only decodes to bare minimum which the cross compiler requires itself.
Ideally identical to D3D structures - helps porting. Provide the used-size of constant buffers to calling application so it can use glBindBufferRange to restrict the ubo map range range and maybe help performance.
Try to make use of patch in/patch out. Patch out should be join phase outputs? How to match up with domain inputs?
Support precision on temporary variables. Start by setting each temp's precision to the highest it is used with.
currently only knows about 32-bit scalars. Could also set inside shader code when uniform blocks are not used.
Should handle monolithic and separate_shader_objects approaches.
Unlike HLSL, GLSL does not have support separate sampler and image handles. It will likely do so in the future, but even then a single image+sampler handle should be supported to handle earlier versions of the language.
Current implementation creates a GL sampler uniform for each D3D image. The GL sampler is given the name of the D3D image. For textures which are sampled with and without depth compare, the cross-compiler does support the creation of both a regular sampler and a shadow sampler. In this case the shadow sampler will be given the name of the regular GL sampler prefixed with 'hlslcc_zcmp_'.