4dsdev
Views: 591,481 Main | Rules/FAQ | Memberlist | Active users | Last posts | Calendar | Stats | Online users | Search 08-18-17 09:39 PM
Guest:

0 users reading GPU stuff to investigate | 1 bot

Main - Reverse-engineering - GPU stuff to investigate New reply


StapleButter
Posted on 11-05-14 06:45 PM Link | #7
Shader limits. For whatever reason, trying to specify more than one constant or 9 opdesc's in a shader freezes the GPU.

Probably it's also the case for uniforms.

____________________
blargSNES -- SNES emu for 3DS
More cool stuff

smea
Posted on 11-05-14 07:03 PM (rev. 2 of 11-05-14 07:06 PM) Link | #8
- see if it's possible to reset the GPU once it "freezes" <= most important thing anyone could ever do ever (could be just GSP freezing waiting for something ? could be that GPU is still waiting for us to send it something more until it does anything ? who knows !)
- GPU_DepthRange problems
- geometry shaders ! (same instruction set with a few new instructions to emit vertices/primitives apparently, need to test and map out + figure out how to set entrypoint and such)
- conditions in shaders (we have control flow ops mostly figured out, cf aemstro, but no clue how conditions work other than uniform booleans)
- wtf are 0x0062 (used when we start drawing with value 0, mask 1) and 0x0063 (used when we finish drawing with value 1, mask F) ?

... and tons of other things but these are the ones i can think of right now

StapleButter
Posted on 11-05-14 07:06 PM Link | #9
Which reminds me of, of course, fragment lighting. It'd be really cool if we figured out how to use that thing. It's one of the big things DMP shows off about the PICA200, too.


Oh, and stencil buffer replacement ops. What the hell is up with those.

____________________
blargSNES -- SNES emu for 3DS
More cool stuff

StapleButter
Posted on 11-06-14 08:23 AM (rev. 2 of 12-04-14 08:24 AM) Link | #12
Shader instructions: MUL doesn't seem to be a multiplication (or I'm doing something wrong).


Also we gotta find shit like SUB and DIV.

SUB could be emulated with MUL*-1 and ADD, and DIV could be emulated with RCP and MUL, but that's hacky.

____________________
blargSNES -- SNES emu for 3DS
More cool stuff

StapleButter
Posted on 11-08-14 04:07 PM Link | #16
Posted by StapleButter
Shader limits. For whatever reason, trying to specify more than one constant or 9 opdesc's in a shader freezes the GPU.

Probably it's also the case for uniforms.

Need to try odd numbers of them. Maybe it's even number syndrome all over again?

____________________
blargSNES -- SNES emu for 3DS
More cool stuff

StapleButter
Posted on 11-25-14 01:58 PM Link | #30
Posted by smea
- see if it's possible to reset the GPU once it "freezes" <= most important thing anyone could ever do ever (could be just GSP freezing waiting for something ? could be that GPU is still waiting for us to send it something more until it does anything ? who knows !)

Just make sure to not enter a gspWaitForP3D() call or you're frozen for good. Unless you have another thread that realizes rendering is taking ways too long, and fake-signals the P3D event to free the first thread and resets the GPU.


Speaking of that, I don't know about you smea but I have observed subpar performance. Back then it took about 6ms to render like 4 triangles, and now the hardware renderer's display lists take about 10ms to execute, even though the polygon counts are still far from the theoretical limits.

neobrain's theory on that is that the GPU is in some power-saving mode. Would make sense.

Where was the GPU reset sequence taken from, already?


Another thing is about command 0x0100. It's commonly set to 0x00E40100. The E4 there got my interest, even though last time I tried to mess with it, nothing changed.

E4 = 11 10 01 00 = 3 2 1 0

I suspect that, used maybe along some other bit, this enables color component swizzling. Hell, maybe it's one of those bits I thought were just being weird.

____________________
blargSNES -- SNES emu for 3DS
More cool stuff

minexew
Posted on 11-30-14 03:31 PM Link | #38
Can user-mode applications access these? http://3dbrew.org/wiki/PDN_Registers

One of them could control the power to the GPU, theoretically making it possible to reset it. But then again, it probably needs some kind of an initialization sequence known only by the OS.

minexew
Posted on 11-30-14 03:32 PM Link | #39
Also http://3dbrew.org/wiki/PDN_Services#PDN_GSP_service_.22pdn:g.22


Main - Reverse-engineering - GPU stuff to investigate New reply

Page rendered in 0.021 seconds. (2048KB of memory used)
MySQL - queries: 26, rows: 77/77, time: 0.016 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2015-10-07)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.