Atomic for BsModule#65
Conversation
|
Earlier on I decided against atomicity for Module. Primarily because it is something you end up paying for on every single call to Module::instance(), and it only really matters during startUp/shutDown calls, which happen once at very specific points. The memory barriers will prevent the compiler from optimally organizing the code around the relevant call, and can potentially issue a memory barrier instruction (will happen on ARM I believe, but on x86 just guaranteeing the order is enough). Perhaps if the atomicity could be achieved using relaxed memory ordering it would be acceptable but I'm not sure I'd like it even then though. If we were to go a thread safe route I'd prefer we use a separate version of Module that is thread-safe (perhaps via a policy controlled by a template parameter). |
|
Ok, that sounds good. I'll add a set of bs::StoragePolicy classes that can be given as a template parameter. Normal, which would just be the normal type being stored. |
16c9356 to
c6cdcbd
Compare
5ee20b2 to
b199601
Compare
102ce6d to
e501e7b
Compare
236daeb to
aeb6297
Compare
|
Sorry for the long delay on this issue. Busy with other stuff shrug. Still planning to provide a patch as described. |
aeb6297 to
eb38f14
Compare
…bject mapping, as it doesn't exist and causes a crash
…erenced resources for listening
This is pretty basic. This also most likely breaks input on external windows as I left a bunch of the X related setup out because I don't want bsf to do anything extra to my window. I use SDL2 for input. A proper solution to this is probably having one more option for specifying if bsf should run the window event loop or not, Windows version probably also needs this option, but I haven't tested my code on Windows yet.
…s in scene materials
- Fixed all shaders failing to cross compile to MSL - Added SPIR-V Cross and MoltenVK library dependencies - Added shader object remapping from descriptor set/slot to Metal indices - Perform vertex Y flip in shader to be consistent with Vulkan - Disable validation layers on macOS, as they complain about Metal Shading Language - Enable MoltenVK debug mode so XCode GPU debugging works
- Shader object remapping will now sort the objects based on set/slot, in order so they resulting indices match what MoltenVK expects
- More fixes regarding set/slot rebinding - Explicitly set threadgroup size for MSL compute shaders
- Such variations can be exposed to the editor and then toggled by the user directly from the GUI
…es can now be queried through Shader - Also added a 'show' BSL attribute that notifies the system a shader variation parameter should be exposed to the user (rather than controlled by the renderer)
…with renderables when an on-demand camera was not drawing
The DCO is a legal protection for some licenses (such as MIT) which do not expressly verify contributors' consent. MIT also does not have a patents clause, which the DCO helps address. This is not retroactive, but could help protect future contributions.
- Laying the groundwork for binary serializer refactor that supports compression
- Added support for RTTI schema - Cleaned up RTTIField interface a bit
- RTTIPlainType::getDynamicSize -> getSize
- Buffered bitstream now supports align() and var int - Included a header for RTTI schema I missed previously
- Refactored binary serializer so it can read meta-data from a schema
- RTTI plain type sizes are now represented through BitLength class - RTTI plain type header can now be compressed
- rtti_* methods now return BitLength
- BinarySerializer can now handle compressed reflectable and reflectable pointer type sizes
- Extended RTTIPlainType::getSize with RTTIFieldInfo parameter - Fixed all compile errors
- Added support for builtin plain types to BinarySerializer
…modate multi-frame effects such as auto-exposure or temporal AA
- Also GUI draw group bounds are now properly calculated, not wasting space
…when they finished executing on the GPU - Also updated the GPU profiler so individual views can be profiled independently (profiling entire frames was causing issues with queries across multiple command buffers)
…internally, so the command execution can be tracked
…how long to keep redrawing an on-demand view for
198a307 to
dc167f9
Compare
dc167f9 to
a5fd96e
Compare
No description provided.