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
|
-focus handling (rather large change in qt-qml to this recently)
-key handling
-tiling modes in borderimage
-anywhere there is a XXX
-there have been numerous fixes in qt-qml (+ some API changes) that need to be integrated
- Remove the unused nodes in src/scenegraph/convenience, like SolidRectnode...
- Move QxParticles into its own plugin as it is not part of the QML core API
- Remove QxPaintedItem and friends from sourcertree..
- New directory structure perhaps?
declarative/
canvas/
view
items/
all the qxitems
scenegraph/
coreapi/
node
material
renderer
materials/
TextureMaterial
FlatColorMaterial
VertexColorMaterial
nodes/
VertexColorRectNode
TextureColorRectNode
- Make QxImage push normalized source coords into TextureNode so we don't have to renormalize for
every geometry change. It also makes a lot more sense, now that TextureNode doesn't know the
size of the original pixmap anymore...
- Fix any reference to "// ### gunnar: port properly". Some of these will be pointless to port
as the upgrade to new QML items is pretty close, so we'll have to evaluate those individually..
- Threaded texture uploads on Mac OS X seems pretty pointless. No matter what I try it seems
like I get a hit of 25 ms in the main thread even though shark tells me that a lot of effort
has been spent in the background thread too. From the shark traces it looks like the driver
does a texture memcpy for the first glDrawElements() that uses the texture in the UI thread.
I guess that only leaves PBO uploads, but that won't remedy the problem, I recon...
EDIT: CLIENT_STORAGE + TEXTURE_STORAGE as SHARED + seems to kill ALL performance problems
- Scene Graph
- Product Finalization:
- API Review and proper d-ptr implementations where required
- Documentation for all public classes
- Autotests for all public classes
- NodeInterfaces, Scene Graph structure, QSGContext, Texture classes, Renderer
- graphical tests through lancelot
- Solve the texture problem. Convenient base class, asynchronous uploads (threading?), atlasses?
- Multimedia, through Qt Mobility or directly to native API's like gstreamer
- We have phonon, but it doesn't work for devices
- Gstreamer, would work on meego / linux
- Lacking solution on symbian
- Upgrade to proper QML Items
- Examples for most common usecases
- Solve the text problem
- Investigate mipmapping
- Investigate distance field
- Investigate curve rendering on gpu
- Scalable unhinted text layout
- text as geometry over a physical size?
- decide and implement at least one working solution
- Optimal backends for SGX, N8 and others.
- Pluggable vsync animation
- Wayland based
- eglSwapBuffers based
- signal based?
- ShaderEffectItem
- Use source to grab static image of subtree for later use
- Feed arbitrary texture values into shader effects?
- Adaptation layer plugin infrastructure?
- Outstanding bugs:
- Vsync driver never pauses
- TextureManager:
- In base class:
- Caching structure
- list of cached image->texture
- list of about to upload textures
- virtual sync upload
- virtual partial upload...
- threading enablers, though disabled by default
- Known sub classes:
- SGX: supports threaded async uploads + plain normal uploads
- default: partial in-thread upload
- mac: fast all sync uploads
- dumb:
- add tests for that createTexture does indeed return something...
|