Commit graph

433 commits

Author SHA1 Message Date
3e838627dc Parser - Preliminary work in (include)
The parser accepts (include "some file") at top level. It does nothing
so far, however, and having it do anything will require some new code
for file name / path handling.
2017-12-25 22:40:55 +01:00
19ae316ad0 TODO list update 2017-12-25 21:53:09 +01:00
3ffc8bf240 Imgui updated 2017-12-25 20:44:32 +01:00
6b3f9bff2a Scripting - Handle compute shader groups automatically 2017-12-25 20:39:56 +01:00
c3ccc9403a Test - Converted DoF to compute shaders
It doesn't work too well, however. Other algorithms need to be checked
out.
2017-12-25 18:41:16 +01:00
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