eb2e83a568
Test - Compute shaders for raymarching
2017-12-25 10:12:17 +01:00
9b13b8e1c6
Profiler - Fixed checkboxes
2017-12-24 18:54:05 +01:00
786d1cf2fe
ImGui updated
...
This was an attempt at fixing the problem with the profiler's
checkboxes, which sometimes reset immediately after a click. The attempt
failed, profiler's checkboxes are still fucked.
2017-12-24 18:47:52 +01:00
020ba4a289
Profiler - Some code clean-up
2017-12-24 18:40:34 +01:00
98ecedfaae
Profiler - Display CPU/GPU times on tooltips
2017-12-24 18:40:12 +01:00
646ec5a423
Profiler - Also use GL timestamps
...
* Get performance information from the GPU using GL timers
* Avoid using glFinish() for the profiler
* Display max( cpu time , gpu time ) in the profiler window
2017-12-24 16:02:17 +01:00
99bd2c429b
Adjustments to test compute shader
2017-12-24 13:16:07 +01:00
81ff8a8da6
Test - Use compute shader for combine stage
2017-12-24 11:40:06 +01:00
4394d911c2
Script - Fixed (image) command
2017-12-24 11:39:41 +01:00
7db090fb5d
Scripting - Image unit binding
2017-12-24 11:10:38 +01:00
8839127c1a
Scripting - Support for compute shader dispatch
2017-12-23 18:40:36 +01:00
4e77e6cf16
TODO list update
2017-12-23 17:54:48 +01:00
0abab985c1
TODO list updated
2017-12-23 17:30:30 +01:00
965496b231
Optimizer - Fixed input handling
2017-12-23 17:29:52 +01:00
d3b1883693
Optimizer - Finished function inlining
2017-12-23 17:18:29 +01:00
2c636fb7b5
Optimizer - Count required extra locals for function inlining
2017-12-17 19:02:00 +01:00
1a6509814e
Optimizer - Determine order for call inlining
2017-12-17 17:27:23 +01:00
94b01e62b4
Optimizer - Started work on function inlining
...
For now:
* Option that triggers inlining
* Compute list of inline-able functions
2017-12-17 15:59:29 +01:00
fd84c3cae3
Compiler - Changed log level for full output dumps
2017-12-17 10:31:59 +01:00
01d9586264
Optimizer - Remove unused globals
2017-12-17 10:30:00 +01:00
630dd94ba6
Optimizer - Remove unused local variables
2017-12-17 09:55:53 +01:00
ff50ba561a
Optimizer - Dead store elimination
...
Works for variables and assets. Does not cover call arguments yet.
2017-12-17 09:33:45 +01:00
ab279857fa
Optimizer - Remove dead branches
2017-12-16 10:38:17 +01:00
08e486a57c
Optimizer - DCE: find conditionals with constant inputs
2017-12-15 07:40:40 +01:00
027d6a2f8d
Optimizer - Removed unnecessary computations
...
The following computations will not be done if their results are cached:
* instruction numbering,
* control flow graph construction,
* use-define chains
2017-12-15 07:16:51 +01:00
c89a62edae
TODO list update
2017-12-15 07:05:14 +01:00
f03b1ba4f1
EBCL update, fixed warnings about sets
2017-12-14 18:54:03 +01:00
8d95f4d1c7
Optimizer - Updated logging
2017-12-14 18:51:14 +01:00
312392d405
Optimizer - Update UD chains during constant propagation
2017-12-14 18:46:36 +01:00
12f9402c94
Optimizer - Working constant propagation
...
AST's replace function needed to be recursive
2017-12-14 07:39:38 +01:00
223dd1763d
AST - Finished refactoring
...
(unless I forgot shit)
2017-12-14 07:29:39 +01:00
5f6eee238f
Parser - Refactored AST nodes
...
AST nodes use the same storage structure, whatever their nature.
2017-12-13 21:44:50 +01:00
efa1b26150
Optimizer - Constant propagation for variables
...
* It doesn't work for function arguments at this point, but shouldn't be
too hard to implement that.
* Can't use it to its full potential mostly because I need to get rid of
the node-specific shit in the AST.
2017-12-12 18:30:41 +01:00
f574780c5e
Build configs - Fixed resolution chooser flag
...
It was being set to true even if disabled by a list of resolutions.
2017-12-12 18:19:16 +01:00
2d375aec72
Optimizer - Removed some unused code
2017-12-12 15:33:42 +01:00
7e5d782d2f
Optimizer - UD chains - WORKING (fo'real, man)
...
Horrible, spaghettish, slow, memory hungry but WORKING implementation of
use/define chains!!!!
2017-12-12 15:33:03 +01:00
cc519be077
Optimizer - UD chains - Function arguments
...
Function arguments are the simplest case for UD chains, as they are
immutable.
2017-12-10 15:25:51 +01:00
f37c0d0df3
Optimizer - Call bypass edges in CFG
...
It will make things simpler when walking the graph for locals.
2017-12-10 11:57:07 +01:00
b2c11d8d2a
Optimizer - More notes
2017-12-10 11:20:25 +01:00
cb42137592
Optimizer - Edge types in CFG
...
Control flow graph edges have been assigned a type, which may be either
FLOW (for normal edges), CALL (for edges that enter a function) or RET
(for edges that exit a function). In addition, call sites have an
additional FLOW edge that bypasses the function call.
2017-12-10 11:12:45 +01:00
ddad981055
Optimizer - Refactored CFG construction
...
Split the control flow graph construction function into multiple
functions. Doesn't add anything to the code, but makes it slightly less
unreadable.
2017-12-10 10:14:35 +01:00
35d3098917
Optimizer - So, UD chains are broken
...
Disabled broken code and added some notes, which are probably broken as
well but fuck it.
2017-12-10 09:59:55 +01:00
fac8de1fde
Optimizer - Mostly OK use/define chain construction
...
In which "mostly" means that it will work, unless:
1/ something is used before being defined (will trigger assertion)
2/ a local variable is re-used before being redefined, which will
be detected as using the def from the previous execution (won't be a
problem for now as it'll crash first, due to (1))
2017-12-08 22:00:43 +01:00
f58226aa79
Optimizer - Fixed control flow graph building
2017-12-08 21:57:41 +01:00
61cd7719f1
Optimizer - WIP UD chain construction
2017-12-08 07:38:59 +01:00
be007f8f96
Optimizer - Some progress on building UD chains
...
From the table of variables we build a table of per-instruction
uses/defines.
2017-12-06 07:42:41 +01:00
5ecc95766a
Optimizer - Some refactoring
2017-12-06 07:05:26 +01:00
9151ceb2c9
Optimizer - Fixed syntax that confused older G++
2017-12-05 06:52:03 +01:00
3d500d4976
Optimizer - UD chains: all uses and defs are added to the list
2017-12-04 07:41:09 +01:00
ffdd3d0a63
Optimizer - Resource uses in UD chain
2017-12-04 07:19:43 +01:00