Techniques to Optimise Multi-threaded Data Building During Game Development
frame time • Systems run together • Read and decompress • Smooth player experience DATA BUILDING • Batch execution • Minimise wall clock time • Systems run in isolation • Read/Write and compress • Developer parallel code Writing systems as singletons Assuming only one instance is needed Assuming frame processing is happening Filling frame related buffers - crash when full Assuming all game systems are initialised data into global shared system - like object graph, ECS, or database Good for the game - makes processing files individually more difficult Speaker notesOPTIMISATION GOAL Minimise the time taken to process0 码力 | 99 页 | 2.40 MB | 5 月前3Implementing C++ Modules: Lessons Learned, Lessons Abandoned
IntelliSense for free – Performance wins in IntelliSense engine by reusing work already done by batch compiler ▪ The two compilers need to agree on BMI versioning ▪ Dependency computation – Compilers – They are complex, volatile (change every time WG21 meets) – Still require repeated semantics processing ▪ Don’t be inflexible about existing compiler frameworks – Header unit and modules switches went0 码力 | 53 页 | 1.33 MB | 5 月前3Interesting Upcoming Features from Low Latency, Parallelism and Concurrency
Execution of Asynchronous Reclamation Proposed standard extensions: ● Synchronous reclamation ● Batch creation and destruction P3135R1: Hazard Pointer Extensions (beyond C++26) P3135R1: Hazard Pointer Synchronous Reclamation OK OKBatch Creation and DestructionC++26 (one at a time) Hazard Pointer Batch Creation and Destruction { hazard_pointer hp[3]; /* Three hazard pointers are made nonempty destroyed separately. */ Batch creation and destruction { hazard_pointer hp[3]; /* Three hazard pointers are made nonempty together. */ make_hazard_pointer_batch(std::span{hp}); SCOPE_EXIT0 码力 | 56 页 | 514.85 KB | 5 月前3Conan 1.6 Documentation
libraries, binaries) from the build and source folder to a predetermined place and does the post-processing (e.g., strips rpaths). For example, one common practice is to use CMake install directive to that be configured here, for example, although it is true that the consumer may want to do some flag processing to check if different dependencies are setting incompatible flags (c++11 after c++14). if self problems in Windows for several environment variables. Fixed problems with path with spaces • A batch file is created in Windows to be called, as if defined structures doesn’t seem to work in the command0 码力 | 428 页 | 2.87 MB | 1 年前3Conan 1.7 Documentation
libraries, binaries) from the build and source folder to a predetermined place and does the post-processing (e.g., strips rpaths). For example, one common practice is to use CMake install directive to that be configured here, for example, although it is true that the consumer may want to do some flag processing to check if different dependencies are setting incompatible flags (c++11 after c++14). if self problems in Windows for several environment variables. Fixed problems with path with spaces • A batch file is created in Windows to be called, as if defined structures doesn’t seem to work in the command0 码力 | 433 页 | 2.95 MB | 1 年前3Conan 2.0 Documentation
libraries, binaries) from the build and source folder to a predetermined place and maybe do some post-processing of those artifacts. This will work without changes in your CMakeLists.txt because Conan will set packages they are creating, and those new or updated lockfiles can be used to continue with the processing. conan lock create $ conan lock create -h WARN: Downgrading cache from Conan 2.1.0 to 2.0.17 given dependency graph 8.1. Commands 295 Conan Documentation, Release 2.0.17 • It is a basic processing of the json files, aggregating them. • It doesn’t guarantee that the lockfile will be complete0 码力 | 652 页 | 4.00 MB | 1 年前3Conan 1.8 Documentation
libraries, binaries) from the build and source folder to a predetermined place and does the post-processing (e.g., strips rpaths). For example, one common practice is to use CMake install directive to that be configured here, for example, although it is true that the consumer may want to do some flag processing to check if different dependencies are setting incompatible flags (c++11 after c++14). if self problems in Windows for several environment variables. Fixed problems with path with spaces • A batch file is created in Windows to be called, as if defined structures doesn’t seem to work in the command0 码力 | 458 页 | 3.03 MB | 1 年前3Conan 1.9 Documentation
libraries, binaries) from the build and source folder to a predetermined place and does the post-processing (e.g., strips rpaths). For example, one common practice is to use CMake install directive to that be configured here, for example, although it is true that the consumer may want to do some flag processing to check if different dependencies are setting incompatible flags (c++11 after c++14). if self problems in Windows for several environment variables. Fixed problems with path with spaces • A batch file is created in Windows to be called, as if defined structures doesn’t seem to work in the command0 码力 | 470 页 | 3.05 MB | 1 年前3Conan 1.3 Documentation
be configured here, for example, although it is true that the consumer may want to do some flag processing to check if different dependencies are setting incompatible flags (c++11 after c++14). if self problems in Windows for several environment variables. Fixed problems with path with spaces • A batch file is created in Windows to be called, as if defined structures doesn’t seem to work in the command improved showing info of current project too • Output of run() can be redirected to buffer string for processing, or even removed. 16.69. 0.8 (15-Mar-2016) 387 conan Documentation, Release 1.3.3 • Added proxy0 码力 | 397 页 | 2.77 MB | 1 年前3Conan 2.1 Documentation
libraries, binaries) from the build and source folder to a predetermined place and maybe do some post-processing of those artifacts. This will work without changes in your CMakeLists.txt because Conan will set packages they are creating, and those new or updated lockfiles can be used to continue with the processing. conan lock create $ conan lock create -h Migration: Successfully updated settings.yml Migration: packages or versions exist or not, or if they belong to a given dependency graph • It is a basic processing of the json files, aggregating them. • It doesn’t guarantee that the lockfile will be complete0 码力 | 694 页 | 4.13 MB | 1 年前3
共 123 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13