Skip to content

Incomplete or missing features

James-Jones edited this page Feb 17, 2013 · 14 revisions

Double precision floating point operands

ARB_gpu_shader_fp64

Use real integer types (ivec*) where appropriate.

goto opcode

Not directly supported by GLSL

swapc opcode

Performs a component-wise conditional swap of the values between two input registers.

ATOMIC opcodes

ARB_image_load_store, imageAtomic functions and image uniform type. ARB_shader_atomic_counters.

LOD opcode

textureQueryLOD
"Returns the mipmap array(s) that would be accessed in the x component of the return value. Returns the computed level of detail relative to the base level in the y component of the return value."
mipmap arrays that would be accessed = the actual LOD used (after clamping) LOD relative to base = calculated LOD

ARB_shading_language_420pack allows swizzle on scalars

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.

per-tessellation-patch attributes

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.

ARB_shader_subroutine.

Only patial support at the moment - interface_call not decoding function ID correctly for starters.

Further work on default values for constants

currently only knows about 32-bit scalars. Could also set inside shader code when uniform blocks are not used.

Improve type/swizzle checking to allow hlsl_opcode_funcs to be removed.

Ability to set HLSLCC_* flags from the standalone/offline exe.

C++ and C helper utility to manage binding a HLSLCC generated shader to the GL pipeline.

Should handle monolithic and separate_shader_objects approaches.

Clone this wiki locally