-
Notifications
You must be signed in to change notification settings - Fork 6
/
todo.txt
419 lines (410 loc) · 12.2 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
// TODO:
// issues
// - swap between dynamic cube and PBR causes inconsitency in the cubemap texture
// samples
// - clear buffer (uav)
// - buffers in pmfx
// - clear buffers for compute
// effects
// - perspective shadow map
// - cascaded shadow map
// - area light
// - disney brdf
// platforms
// - bring across macos shader compilation
// - integrate macos changes and fixup win32/d3d12
// - try update windows-rs
// engine
// - reverse depth
// - visibility buffer
// - mesh shader
// - hello triangle (ray tracing)
// - HDR pipeline
// - glft
// - set name on resources
// - lazy init print function
// - example triangle culling via execute indirect
// gfx
// - Alpha to coverage
// - Stencil Ref / Buffer
// - API for fence
// ui / debug
// - per demo settings
// - thread stats
// - view menu + saving state
// - imgui not tracked within draw call stats
// build
// DONE:
// x test shader compilation with mac changes
// x update pmbuild
// x omni shadow map
// x texture formats (BC etc)
// x texture load image from file into pmfx
// x copy texture region
// x gen mips is a frame behind
// x shadow map
// x resolves fully data driven
// x update docs
// x bindful example
// x minimise shader duplication caused via pmfx includes, organise shaders better
// x barriers for compute
// x resource names with name: (without space) cause probs
// x add lights to swirling trash
// x finish blog
// x update docs with examples
// x publish
// x fix light buffer 0 issue?
// x update default configs for users
// x allow pipelines to drive the num thread in compute shaders and vice/versa
// x pass output dimensions to compute (fix mrt)
// x rename descriptor layout
// x pmfx
// x fix tests
// x apply maps / material properties + lights
// x serialise plugin data is badly formatted (needs expanding per plugin / demo)
// x render grid not tracked
// o store hotline-data commit hash for crates.io
// x ability to view images in imgui from different heaps
// x cleaup heaps
// x post process / 2d passes (compute based)
// x mip map generation
// x MRT
// x MSAA sample reads
// x aabb culling with extent / pos
// o print validation messages on panic / stack unwind? (didnt work)
// x Execute Indirect
// x gpu culling
// x pmfx-shader
// x nested structure usages are not detected correctly
// x cbuffers containing arrays not being correctly compiled in
// x structures being brought in when not used
// x cbuffer members incorrectly being brought in when referenced by scope (world_matrix, entity_world_matrix)
// x copy buffer region
// x imgui colours are not complete
// x improve ecs examples structure
// x transform normals with world matrix
// x construct tangent space
// x resource sizes passed to compute
// x render target fixed size
// x directional light
// x spot light
// x update: maths-rs
// x fix get_num_32bit_constants function
// x need to supply number of lights
// x add vec rotate 2d function
// x add cubic interpolate function
// x add cubic tangents function
// x fix rbga8/vec functions
// x cook torrence
// x oren nayar
// x different camera support
// x persistent mapped buffers
// x point light
// x create texture with heap
// x pmfx shader heap
// x compute passes
// x ecs texture
// x stats read out
// x cleaning up srvs in ecs worlds
// x uv's need flipping on geom
// x timer stats
// x structured buffer instances
// x validate states exist in pmfx
// x crash on reload
// x corretly obtain cbuffer alignment?
// x fix gpu time inconsistency
// x in client terminal / log (validation layer) / info queue
// x find offsets to bind heaps to from register bindings in shader
// x unify shader code and pmfx code
// x cubemaps do not create descriptor layout binding
// x texture3d do not create descriptor layout binding
// x 3d texture
// x pmfx static samplers should be an array - actually no!
// x texture array
// x cubemap
// x tidy push constants material
// x maths_rs 3x4 transpose doesnt work, it should return 4x3
// x sumbit one commandlist for each texture not mip
// x ddsfile
// x textures with mip_levels
// x pmfx scissor not hot-reloading
// x pmfx viewport not hot-reloading
// x pmfx blend state not hot-reloading (hashing blend state)
// x maths_rs hsv to rrgb doesnt work (generics) & has no test
// x blend examples (push constants?)
// x 3x4 world matrix
// x pmfx should allow pragmas / copy them into source
// x pmfx should be able to foward -args to the toolchain
// x billboard?
// x ecs leaks
// x batch dep marker
// x update pmbuild and pmfx (again)
// x move primitives from ecs to hotline (fix helix uvs and capsule gaps)
// x batch cbuffer instances
// x pmfx v2 docs (texture and render graph)
// x bug with pmfx inherit (test.pmfx cannot inherit and extend pipelines)
// x bug with merging pmfx, with shared keys. the old ones are not recirsively merged / overwritten
// x fix issues with crash when a return happens between begin/end render pass
// x gfx::buffer should need to be mut for update
// x propagate sample mask??
// x Draw Instanced
// x draw instanced
// x pmfx v2 docs (view)
// x batch vertex instance buffer
// x GPU Query
// x hot reload progress / indicator in status bar
// x markers on ecs render passes
// x add gif to the github page, + link to video
// x handle serde errors when building pipeline
// x RGBA write issue
// x pmfx docs for v1 and v2
// x Blend
// x status bar
// x time resource for systems
// x spring
// x move rotate system out of ecs into ecs_examples
// x core update (cams, configs)
// x raster examples
// x update maths 0.1.9
// x update matrices ecs
// x trapezoid
// x chamfer cube
// x quick video
// x update hotline-data
// x update pmfx shader
// x add textures to dock
// x option to save config and ini to disk location
// x remove relative path for the repo's plugins
// x recursive includes?
// x rename basic > debug
// x tourus (uv)
// x single pipeline render function
// x update cameras from scene
// x handle missing pipeline
// x handle missing view
// x handle missing camera
// x billboard
// x shift sphere seam
// x quick tidy on pmfx files and layout
// x msaa + texture format reloads
// x reply to pmtech user
// x fix shader test failures
// x capsule
// x textures
// x improve render function / naming and passing of view
// x docked defaults
// x imgui push / pop colour
// x show schedule and errors
// x error handling !!!! ->
// x - missing plugin
// x - missing system func
// x - missing view
// x fix tests and samples
// x fix warnings
// x pmbuild running on close?
// x cone
// x prsims
// x hemi-sphere
// x vs code build and run (debug and release)
// x phi, inv phi to maths. generic sin cos?
// x raster
// x pmfx not reloading
// x wireframe
// x MSAA
// x icosasphere
// x watch files in folders
// x save imgui locations more reliably
// x plane - heightmap
// x download data
// x github ref to build tools?
// x readme / docs
// x combo size
// x hash map utils (add if new)
// x name threads
// x pmfx mltiple files
// x preent redundant pmfx pipeline compilation
// x plugin specific serialisation structs into user-config
// x update systems, setup systems
// x specify pmfx
// x file wataches from pmfx -w
// x input system
// x selectable demo
// x enumerate plugins
// x delete plugin mem on shutdown
// x respect imgui flags (hovered / accept input) in camera controller
// x improve reloader / responder create / grouping
// x ui call hooks into plugin
// x hotline dynamic lib (build times)
// x consolidate sync code (responder ref)... downcast helper?
// x - add files
// x persistent plugins
// x different lib build commands
// x build lib on load
// x handle compile failures
// x plugin collecion into plugin module
// x persistent console window position
// x select / add plugin lib from file
// x quick dev ui tidy up
// x hot-reload shaders, pipelines, views
// x watching rebuilding
// x -- pmfx
// x plugin and reloader modules
// x reload new plugins
// x client - rename from host
// x plugin libs release vs debug
// x pipeline permutations
// x reload sync
// x build schedule
// x resources > world
// x core pmfx shaders etc
// x streamline install / deployment (pmbuild, pmfx etc)
// x build schedule from file
// x core functions
// x pipeline for pass format
// x host app
// - window utility remember maximised flags
// x window utilities remember position
// x hot-reload lib
// x fix validation warning on resize
// x handle dropped resources on rebuild
// x pass view name to blit to pmfx
// x wait frames before properly dropping gpu resources (textures)
// x ratio tracking pmfx
// x basic graphs
// x auto barriers
// x depth stencil as texture
// x move 'add' code into startup system - not possible? other ways of creating startup systems?
// x copy or clone buffers? (cloning for now)
// x setup functions
// x update funcions
// x render functions
// x depth stencil state from pmfx
// x blit main buffers to backbuffer
// x path utilities
// x imgui into hotline context
// x remove swap chain dependencies
// x reduce cmd buf dependency
// x clear from pmfx
// x depth buffer pmfx
// x views from pmfx
// x render passes
// x render targets from pmfx
// x get docs passing
// x automate cargo publish
// x pmfx mesh and view
// x move hotline context and make generic
// x render cube -> render cubes
// x focus checks for imgui input hovers etc
// x debug rendering 3d
// x camera
// x Automate docs update
// x pmfx Descriptor Layout
// x x bindings
// x x push constants
// x x samplers
// x pmfx pipelines
// x add dxc and support for sm_6_0
// x Math lib
// x bindless in pmfx
// x pmfx Input Layout
// x debug rendering 2d
// x automate pmbuild / pmfx update
// x Shaders from IR
// x pmfx Shaders
// x build scripts
// x make const conversion functions
// x clean up video textures properly
// x av documentation
// x bug with bad chars being passed as ext filters
// x crash on shutdown not seletcing correct wndproc
// x add glyph ranges to imgui info
// x font awesome
// x fix location of imgui.ini and .gitignore
// x video player pause
// x open file dialog
// x imgui image
// x change source
// x WMF errors
// x swap chain create return result
// x single error type?
// x CI runner
// x Handle CPU access flags for buffers in a nicer way
// x Handle buffers with no data
// x Readback request doesnt unmap
// x keyboard input
// x imgui mouse cursors
// x Imgui platform
// x Imgui multi windows
// x enum monitors
// x monitor DPI
// x Move Imgui to instance instead of procedural api with static
// x Imgui renderer
// x spelling mistake independent.
// x change get srv handle to be Option instead of sential -1
// x Depth Stencil Target
// x Depth stencil heap
// x state / info defaults
// x Render Target Formats From Pass
// x Select adapter from name
// x winpixeventruntime
// x Blend State
// x Depth Stencil State
// x Raster State
// x Topology
// x Crash on resize
// x Enumerate adapters
// x Enumerate Device Info
// x GPU Marker
// x Compute
// x docs on website
// x Render Target
// x Heaps? + free list?
// x device info with default heap sizes
// x do we need `static on a trait? (for now removed)
// x descriptor table shader visibility
// x pipeline result error handling
// x srv index from Texture and Buffer
// x swap chain create info
// x render pass in swap chain
// x rtv heaps in device not swap chain
// x call super traits = use super::Trait as SuperTrait (to avoid ambiguity)
// x render pass result error handling
// x texture result error handling
// x shaders result / error handling
// x buffers result / error handling
// x null terminate strings passed to windows-rs **
// x Constant Buffer
// x Transition barriers
// x Bindless texture array
// x Render Passes
// x Root Signature == DescriptorLayout **
// x Pipeline->RootSignature
// x Input Layout
// x Static Samplers
// x Push Constants
// x Track transitions and manually drop **
// x Push constants
// x viewport rect position must be stomped to 0
// x Triangle as test (fix shader compile issue)
// x Texture
// x Backbuffer readback / resource readback
// x how to properly use bitmask and flags?
// x remove "Graphics" and move "Instance" to "App"
// x Index Buffer
// x rust fmt line length
// x samples
// x PSO
// x Shaders from source
// x Viewport
// x Scissor
// x Bind Viewport
// x Bind Scissor
// x Draw Call
// x Resize Swap Chain
// x Vsync not working?
// x Buffer
// x Create Buffer
// x Bind Vertex Buffer
// x move tests
// x move files / modules / libs
// x docs