Go to file
Couriersud dd836ed4d5 Discrete sound parallel tasks
Introduced DISCRETE_TASK_START, DISCRETE_TASK_END

DISCRETE_TASK_START
- Start a new task. A task is a set of nodes which only depend on input nodes and nodes in the set

DISCRETE_TASK_END(task_output_node)
- Marks the end of the task. task_output_node is the node whose output over time should be preserved. This node can be accessed by nodes in the main thread.

Order of execution:
a) All tasks in parallel
b) All nodes not part of a task. These may only refer to nodes listed in DISCRETE_TASK_END

Illustrated the concept in the dkong discrete emulation. This also has been enhanced to buffer DAC output. 

Further changes:
- DISCRETE_OUTPUT now is a stepping node.
- DISCRETE_STREAM_INPUT now advances input pointer in step.
- More linked_list usage.

I estimate that the rework without tasks leads to a 5% performance gain. For dkong, the usage of tasks adds another 15%.
There are some features missing:
- Multiple nodes in DISCRETE_TASK_END
- More task consistency checks
- Task identifiers for tasks
2009-08-25 23:29:31 +00:00
docs Ouch... there was still one crsshairpath... 2009-07-14 18:08:29 +00:00
src Discrete sound parallel tasks 2009-08-25 23:29:31 +00:00
.gitattributes Implemented basic Argonaut SuperFX support, needs to be hooked to the SNES driver. [Anonymous] 2009-08-23 08:06:50 +00:00
makefile Added infrastructure to compile universal standalone disassembler: 2009-08-22 06:25:07 +00:00