A full article explaining everything in detail (after you’re finished with your work) would be a great-to-have. It would serve as a great point of reference, and hopefully attract interested parties.
I’m at a point where I’m trying to see the roadmap that’s left ?
Implementing RLC block (exact meaning unknown) handling code seems required for proper GFX ring operation and scheduling, amdgpu code. Also interrupt handling and power management need to be implemented.
Started implementing inspection protocol and server monitor client
> make_meson run Monitor
ninja: no work to do.
+ThreadLink(), thread: 95169
team 95059
id kind address size
1 GTT 0x80017000 0x00001000
2 VRAM MAP 0x00442000 0x00040000
3 VRAM MAP 0x00482000 0x00010000
4 VRAM MAP 0x00492000 0x00047000
5 VRAM MAP 0x004da000 0x00047000
6 VRAM MAP 0x00521000 0x00047000
7 VRAM MAP 0x00568000 0x00047000
8 GTT 0x80018000 0x00001000
9 GTT 0x80019000 0x00080000
10 GTT 0x80099000 0x00300000
11 GTT 0x80399000 0x00300000
12 VRAM 0x10000000 0x003cd000
16 GTT 0x8126c000 0x00001000
17 VRAM 0x103ce000 0x00001000
18 GTT 0x806a1000 0x00001000
19 VRAM 0x13a8a000 0x00209000
21 VRAM 0x10457000 0x00209000
22 VRAM MAP 0x005fe000 0x00047000
23 VRAM 0x103cd000 0x00001000
24 VRAM 0x12520000 0x01556000
25 VRAM 0x103cf000 0x00001000
26 VRAM 0x103e8000 0x0000f000
27 GTT 0x806b1000 0x00400000
28 VRAM MAP 0x005b7000 0x00047000
29 VRAM MAP 0x00645000 0x00047000
30 VRAM MAP 0x0068d000 0x00047000
31 GTT 0x806b0000 0x00001000
32 GTT 0x80ab1000 0x00080000
33 GTT 0x806af000 0x00001000
34 GTT 0x806ad000 0x00001000
35 VRAM 0x103d0000 0x00001000
36 VRAM 0x103e2000 0x00006000
37 VRAM 0x109d6000 0x01556000
38 GTT 0x80b31000 0x00001000
39 VRAM 0x103d2000 0x0000d000
40 VRAM 0x1099c000 0x00008000
41 VRAM 0x13c93000 0x00018000
42 VRAM 0x13a76000 0x00014000
43 GTT 0x806a3000 0x00001000
44 VRAM 0x103d1000 0x00001000
45 GTT 0x81304000 0x00002000
46 GTT 0x8128b000 0x00001000
47 VRAM 0x13cab000 0x00232000
49 VRAM 0x103f7000 0x00060000
50 GTT 0x81309000 0x00001000
51 GTT 0x812eb000 0x00001000
52 VRAM 0x10696000 0x0001b000
53 VRAM 0x103df000 0x00001000
54 GTT 0x812f3000 0x00001000
55 VRAM 0x1410f000 0x00232000
56 GTT 0x812f2000 0x00001000
57 VRAM 0x10666000 0x00030000
58 GTT 0x812ec000 0x00001000
59 VRAM 0x10660000 0x00006000
60 VRAM 0x103e0000 0x00001000
61 VRAM 0x106b1000 0x0001b000
62 VRAM 0x10727000 0x0001b000
63 VRAM 0x1099b000 0x00001000
64 VRAM 0x10742000 0x00027000
65 GTT 0x812cf000 0x00006000
66 VRAM 0x11f2c000 0x002c9000
67 GTT 0x81306000 0x00001000
68 GTT 0x81238000 0x00001000
69 GTT 0x8128f000 0x00004000
70 GTT 0x812f4000 0x00001000
71 GTT 0x812ee000 0x00001000
72 VRAM 0x10769000 0x00232000
73 VRAM 0x103e1000 0x00001000
74 GTT 0x812f9000 0x00001000
75 GTT 0x812fb000 0x00001000
76 VRAM 0x121f5000 0x00232000
77 GTT 0x812fd000 0x00001000
78 GTT 0x812fe000 0x00002000
79 VRAM 0x106cc000 0x0001b000
80 VRAM 0x106e7000 0x00040000
81 VRAM 0x13edd000 0x00232000
82 VRAM 0x149ed000 0x00200000
83 GTT 0x812ef000 0x00001000
84 VRAM 0x109a4000 0x00001000
85 GTT 0x812f7000 0x00001000
86 VRAM 0x109a5000 0x00001000
87 VRAM 0x14341000 0x002c9000
88 VRAM 0x1460a000 0x0011a000
89 VRAM 0x14724000 0x002c9000
90 GTT 0x81250000 0x00001000
94 GTT 0x81240000 0x00001000
95 GTT 0x8129b000 0x00010000
96 GTT 0x812ab000 0x00008000
97 GTT 0x812b3000 0x00004000
98 GTT 0x812f6000 0x00001000
99 GTT 0x8130a000 0x00001000
100 GTT 0x806a8000 0x00001000
101 GTT 0x80b32000 0x00100000
102 GTT 0x812b7000 0x00004000
103 GTT 0x812f0000 0x00001000
104 GTT 0x812bb000 0x00004000
105 GTT 0x81307000 0x00001000
106 GTT 0x812d7000 0x00004000
107 GTT 0x806a2000 0x00001000
108 GTT 0x80699000 0x00001000
109 GTT 0x812f5000 0x00001000
110 GTT 0x81300000 0x00001000
111 GTT 0x81301000 0x00001000
112 GTT 0x812d5000 0x00001000
113 GTT 0x812d6000 0x00001000
114 GTT 0x8128c000 0x00001000
115 GTT 0x8128d000 0x00001000
116 GTT 0x8128e000 0x00001000
117 GTT 0x812db000 0x00001000
118 GTT 0x812dc000 0x00001000
119 GTT 0x812dd000 0x00001000
120 GTT 0x812de000 0x00001000
121 GTT 0x81293000 0x00001000
122 GTT 0x81294000 0x00001000
123 GTT 0x81295000 0x00001000
124 GTT 0x81296000 0x00001000
125 GTT 0x81297000 0x00001000
126 GTT 0x81298000 0x00001000
127 GTT 0x81299000 0x00001000
128 GTT 0x8129a000 0x00001000
129 GTT 0x812bf000 0x00001000
130 GTT 0x812c0000 0x00001000
131 GTT 0x81213000 0x0001f000
132 GTT 0x812c1000 0x00001000
133 GTT 0x812c2000 0x00001000
134 GTT 0x812c3000 0x00001000
135 GTT 0x812c4000 0x00001000
136 GTT 0x812c5000 0x00001000
137 GTT 0x812c6000 0x00001000
138 GTT 0x812c7000 0x00001000
139 GTT 0x812c8000 0x00001000
140 GTT 0x812c9000 0x00001000
141 GTT 0x812ca000 0x00001000
142 GTT 0x812cb000 0x00002000
143 GTT 0x812cd000 0x00001000
144 GTT 0x812ce000 0x00001000
145 GTT 0x812df000 0x00001000
146 GTT 0x812e0000 0x00001000
147 GTT 0x812e1000 0x00001000
148 GTT 0x812e2000 0x00001000
149 GTT 0x812e3000 0x00001000
150 GTT 0x812e4000 0x00001000
151 GTT 0x812e5000 0x00001000
152 GTT 0x812e7000 0x00001000
153 GTT 0x812e6000 0x00001000
154 GTT 0x81289000 0x00001000
155 GTT 0x81252000 0x00001000
156 GTT 0x812fa000 0x00001000
157 GTT 0x81232000 0x00004000
158 VRAM 0x14bed000 0x00109000
161 GTT 0x80d32000 0x00100000
162 GTT 0x81264000 0x00001000
165 GTT 0x80c32000 0x00008000
168 GTT 0x81260000 0x00001000
169 GTT 0x81239000 0x00001000
170 GTT 0x8126b000 0x00001000
172 GTT 0x81245000 0x00001000
175 GTT 0x8125d000 0x00001000
179 GTT 0x81243000 0x00001000
180 GTT 0x8124c000 0x00001000
181 GTT 0x8124b000 0x00001000
182 GTT 0x8123e000 0x00001000
183 GTT 0x80c6d000 0x00001000
184 GTT 0x8124d000 0x00001000
185 GTT 0x81242000 0x00001000
186 GTT 0x812ea000 0x00001000
187 GTT 0x8124a000 0x00001000
189 GTT 0x81255000 0x00008000
190 GTT 0x8123f000 0x00001000
191 GTT 0x81253000 0x00001000
193 GTT 0x8125f000 0x00001000
194 GTT 0x8128a000 0x00001000
195 GTT 0x81265000 0x00001000
196 GTT 0x81276000 0x00008000
200 GTT 0x81244000 0x00001000
201 GTT 0x812ed000 0x00001000
202 GTT 0x80c74000 0x00008000
204 GTT 0x8124e000 0x00001000
205 GTT 0x81270000 0x00001000
206 GTT 0x8126f000 0x00001000
208 GTT 0x812f1000 0x00001000
210 GTT 0x81246000 0x00001000
212 GTT 0x81236000 0x00001000
213 GTT 0x806a0000 0x00001000
214 GTT 0x812f8000 0x00001000
215 GTT 0x81266000 0x00001000
220 GTT 0x81248000 0x00001000
team 95118
id kind address size
1 GTT 0x81267000 0x00001000
2 GTT 0x81262000 0x00001000
3 VRAM MAP 0x0071c000 0x00040000
4 GTT 0x8130b000 0x00384000
5 VRAM 0x14cf6000 0x003c3000
6 VRAM 0x150b9000 0x003c3000
7 VRAM 0x1547c000 0x004c3000
8 VRAM 0x12427000 0x00040000
9 VRAM 0x15a95000 0x00aac000
10 GTT 0x8127e000 0x00004000
11 VRAM MAP 0x00766000 0x00001000
12 VRAM 0x109a6000 0x00001000
13 GTT 0x81274000 0x00002000
14 VRAM 0x109ad000 0x00001000
15 VRAM 0x109a7000 0x00005000
16 VRAM 0x109ac000 0x00001000
17 VRAM MAP 0x00767000 0x00001000
18 GTT 0x806a4000 0x00002000
19 VRAM 0x1593f000 0x00156000
20 VRAM 0x109b2000 0x0001a000
21 VRAM 0x109cc000 0x00006000
22 VRAM MAP 0x00768000 0x00001000
23 VRAM 0x12467000 0x00040000
24 VRAM MAP 0x00774000 0x00001000
25 GTT 0x8069f000 0x00001000
26 GTT 0x8069a000 0x00004000
27 GTT 0x80c40000 0x00004000
28 GTT 0x81282000 0x00004000
29 GTT 0x8126e000 0x00001000
30 GTT 0x80c3a000 0x00003000
31 GTT 0x81287000 0x00001000
team 95133
id kind address size
1 GTT 0x8069e000 0x00001000
2 GTT 0x81269000 0x00001000
3 VRAM MAP 0x0077e000 0x00040000
4 GTT 0x8168f000 0x00384000
5 VRAM 0x16541000 0x003c3000
6 VRAM 0x16904000 0x003c3000
7 VRAM 0x16cc7000 0x004c3000
8 VRAM 0x124a7000 0x00040000
9 VRAM 0x176e0000 0x00556000
10 GTT 0x80c44000 0x00004000
11 VRAM MAP 0x007c8000 0x00001000
12 VRAM 0x1718a000 0x00556000
13 VRAM 0x17c36000 0x00556000
14 VRAM 0x1818c000 0x00556000
15 VRAM 0x186e2000 0x00556000
16 VRAM 0x18c38000 0x00556000
17 VRAM 0x1918e000 0x00556000
18 VRAM 0x196e4000 0x00556000
19 VRAM 0x19c3a000 0x00556000
20 VRAM 0x1a190000 0x00556000
21 VRAM 0x1a6e6000 0x00556000
22 VRAM 0x1ac3c000 0x00556000
23 VRAM 0x1b192000 0x00556000
24 VRAM 0x1b6e8000 0x00556000
25 VRAM 0x1bc3e000 0x00556000
26 VRAM 0x1c194000 0x00556000
27 VRAM 0x109ae000 0x00001000
28 VRAM 0x1c6ea000 0x00556000
29 VRAM 0x1cc40000 0x00556000
30 VRAM 0x1d196000 0x00556000
31 VRAM 0x1d6ec000 0x00556000
32 VRAM 0x1dc42000 0x00556000
33 VRAM 0x1e198000 0x00556000
34 VRAM 0x1e6ee000 0x00556000
35 VRAM 0x1ec44000 0x00556000
36 VRAM 0x1f19a000 0x00556000
37 VRAM 0x1f6f0000 0x00556000
38 VRAM 0x1fc46000 0x00556000
39 VRAM 0x2019c000 0x00556000
40 VRAM 0x206f2000 0x00556000
41 VRAM 0x20c48000 0x00556000
42 VRAM 0x2119e000 0x00556000
43 VRAM 0x216f4000 0x00556000
44 VRAM 0x21c4a000 0x00556000
45 VRAM 0x221a0000 0x00556000
46 VRAM 0x226f6000 0x00556000
47 VRAM 0x22c4c000 0x00556000
48 VRAM 0x231a2000 0x00556000
49 VRAM 0x236f8000 0x00556000
50 VRAM 0x23c4e000 0x00556000
51 VRAM 0x241a4000 0x00556000
52 VRAM 0x246fa000 0x00556000
53 VRAM 0x24c50000 0x00556000
54 VRAM 0x251a6000 0x00556000
55 VRAM 0x256fc000 0x00556000
56 VRAM 0x25c52000 0x00556000
57 VRAM 0x261a8000 0x00556000
58 VRAM 0x266fe000 0x00556000
59 VRAM 0x26c54000 0x00556000
60 VRAM 0x109af000 0x00001000
61 GTT 0x80c3d000 0x00002000
62 GTT 0x81271000 0x00002000
63 GTT 0x80c48000 0x00002000
64 GTT 0x80c4a000 0x00002000
65 GTT 0x80c4c000 0x00002000
66 GTT 0x80c4e000 0x00002000
67 GTT 0x80c50000 0x00002000
68 GTT 0x80c52000 0x00002000
69 GTT 0x806a6000 0x00002000
70 GTT 0x80c54000 0x00002000
71 GTT 0x80c56000 0x00002000
72 GTT 0x80c5a000 0x00002000
73 GTT 0x80c5c000 0x00002000
74 VRAM 0x28882000 0x00f00000
75 VRAM 0x29782000 0x003c3000
76 VRAM 0x271aa000 0x013d7000
77 VRAM 0x28581000 0x00301000
78 VRAM MAP 0x00872000 0x00001000
79 VRAM 0x29b45000 0x003c3000
80 VRAM 0x29f08000 0x004c3000
81 VRAM 0x2a3cb000 0x000f3000
82 VRAM 0x2a4be000 0x000f3000
83 GTT 0x81302000 0x00001000
84 GTT 0x8126d000 0x00001000
85 GTT 0x81268000 0x00001000
86 GTT 0x80c5e000 0x00004000
87 VRAM 0x109b0000 0x00001000
88 VRAM MAP 0x00876000 0x00001000
89 GTT 0x80c62000 0x00004000
90 GTT 0x80c66000 0x00004000
91 GTT 0x80c6a000 0x00003000
92 GTT 0x812e9000 0x00001000
93 GTT 0x80c80000 0x00004000
team 95153
id kind address size
team 95169
id kind address size
-ThreadLink(), thread: 95169
RLC seems to be Ring List Controller. Found a reference to it in a patent.
Is there a point where the 2d driver needs integration with any of this ???
What is 2D driver?
The mode setting driver for the radeon cards, not dure how complete it is, but it’s in tree
Oh gosh, hn is corrupted beyond repair.
If more graphics cards are needed for testing: I got some Gigabyte Sapphire card for free yesterday.
A search at MetaGer showed that it seems to be a AMD Radeon,but the package is not very exact about the model.
I could put it into one of my old spare computers and run some tests on it if it helps.
as SCollins says.
HardwareInfo/video/ATI – Haiku (haiku-os.org) (As an example)
When Talking about 2D Driver we usually talks about Mode Switching, Hardware cursor, and 2d desktop acceleration. (I think) The last 2 are inactivated in Haiku but do exist in the driver.
Added information about memory usage also fixed memory leak on client exit (referenced in AddressSpace).
> make_meson run Monitor
ninja: no work to do.
+ThreadLink(), thread: 3295
memory usage
VRAM
339968/1879048192
VRAM MAP
5771264/268435456
GTT
3416064/2147483648
team 3277
id kind address size
1 GTT 0x8123a000 0x00001000
2 VRAM MAP 0x0040a000 0x00040000
3 VRAM MAP 0x0044a000 0x00010000
4 VRAM MAP 0x00655000 0x00047000
5 VRAM MAP 0x0060d000 0x00047000
6 VRAM MAP 0x0057f000 0x00047000
7 VRAM MAP 0x005c6000 0x00047000
8 GTT 0x81237000 0x00001000
9 GTT 0x80ab1000 0x00080000
10 GTT 0x80019000 0x00040000
11 GTT 0x80059000 0x00040000
12 VRAM 0x103f7000 0x00053000
13 GTT 0x80c32000 0x00100000
14 GTT 0x80b32000 0x00020000
15 GTT 0x8126d000 0x00004000
16 GTT 0x8123d000 0x00001000
17 GTT 0x812d7000 0x00004000
18 GTT 0x80399000 0x00100000
team 3295
id kind address size
-ThreadLink(), thread: 3295
You can see from the screenshot that the image is already displayed on screen. What else do you need as far as integration with the existing drivers goes?
I would think memory management , and a few other features would be good for performance reasons to bring into kernel space
X512 You are a refugee or a robot? I think you are a candidate US wisa for a butiful mind
cheers!
Well: displaying the 3d output on the same graphics card that shows the desktop as well for instance? Afaik currently you need two seperate cards…
Actually it’s just a matter of telling the card where to direct finished textures etc. But this way he can crash the GPU etc and still have a functional recoverable system. I actually forsee a massive speedup when he unburdens the ring of the workload. Also such a heavy memory demand will alliw for good discovery of code bottlenecks to a point
Since haiku does not use the acceleration engine it’s totally ok to crash the GPU. Haiku will keep working correctly despite that happening. The only parts where it might have influence is memory management and modesetting. But that should be relatively easy to overcome. Talking from personal experience here
Some incorrect manipulation with GPU cause complete PC freeze so even hardware reset button don’t work.