initial work to make kernel not require a scheduler for workers.
New job system working. Still need to tidy up the pushing of new job queues and write some unit tests.
removed global mutex from kernel that was used by the workers. should all run in parallel properly now.
jobwork
Added HLSLCrossCompiler to externals.
Shared utility shader code.
Move semantics in BcBinaryData
Added shader importer and started work on the HLSL compilation pipeline:
- Old pipeline that takes raw GLSL is still supported.
- Shaders will be rolled into 1 single file now, and only entry points will be specified by shader type.
- Permutations will be done with preprocessing.
- HLSLCrossCompiler is used for conversion, using Boost::Wave to strip comments from output GLSL.
- Vertex attributes are passed in on program creation so we know what to bind to what name.