Presentation is loading. Please wait.

Presentation is loading. Please wait.

Status – Week 270 Victor Moya. Summary ShaderEmulator. ShaderEmulator. ShaderSimulator. ShaderSimulator. Schedule. Schedule. Name. Name. Projects. Projects.

Similar presentations


Presentation on theme: "Status – Week 270 Victor Moya. Summary ShaderEmulator. ShaderEmulator. ShaderSimulator. ShaderSimulator. Schedule. Schedule. Name. Name. Projects. Projects."— Presentation transcript:

1 Status – Week 270 Victor Moya

2 Summary ShaderEmulator. ShaderEmulator. ShaderSimulator. ShaderSimulator. Schedule. Schedule. Name. Name. Projects. Projects.

3 ShaderEmulator General structure almost done. General structure almost done. Some problems: Some problems: Jump Table for instruction emulation functions. Jump Table for instruction emulation functions. Meaning of static members in a C++ class. Meaning of static members in a C++ class. Possible solution: new parameters. Possible solution: new parameters. shDP3(shInstr, numThread, PC, decodReg, addrBank) shDP3(shInstr, numThread, PC, decodReg, addrBank) Another solution: Another solution: Separate ShaderState from ShaderEmulator. Separate ShaderState from ShaderEmulator. Pass ShaderState to the emulation functions. Pass ShaderState to the emulation functions. Problems: shared state. Problems: shared state.

4 ShaderEmulator Currently implemented one instrution: DP3/DP3C. Currently implemented one instrution: DP3/DP3C. To be used as reference for the other instructions. To be used as reference for the other instructions. Not yet tested. Not yet tested.

5 ShaderSimulator Nothing done yet. Nothing done yet. ShaderExecInstruction => Carlos. ShaderExecInstruction => Carlos.

6 Schedule Finish ShaderEmulator and test it. Finish ShaderEmulator and test it. Solve the function table problem in some way. Solve the function table problem in some way. Create test programs. Create test programs. Would be interesting a shader assembler and disassembler. Would be interesting a shader assembler and disassembler. Extend ShaderInstruction class with two new methods: encode() and disasm(). Add a new constructor (empty instruction). Extend ShaderInstruction class with two new methods: encode() and disasm(). Add a new constructor (empty instruction). Create a parser. Create a parser.

7 Schedule Implement the Shader Simulator classes (ShaderFetch, ShaderDecode). Implement the Shader Simulator classes (ShaderFetch, ShaderDecode). Create the stub classes for testing. Create the stub classes for testing. Expand ShaderEmulator until implement all the instructions. Expand ShaderEmulator until implement all the instructions. Further testing. Further testing. Start Command Processor stuff. Start Command Processor stuff.

8 Name Suggestions: Suggestions: GPU3D/gpu3d (current no-name). GPU3D/gpu3d (current no-name). SimGPU. SimGPU. SimpleGPU (copy of SimpleScalar). SimpleGPU (copy of SimpleScalar). Something absolutely different like Dixie … Something absolutely different like Dixie … Or something not related with anything like your pet favourite name … Athenea. Or something not related with anything like your pet favourite name … Athenea. Your ideas? Your ideas?

9 Projects Agustin suggested to propose final year projects about graphics 3D. Agustin suggested to propose final year projects about graphics 3D. For example to implement a GPU driver for a current GPU. For example to implement a GPU driver for a current GPU. Other alternatives: Other alternatives: Implement the driver for our own GPU (too early?). Implement the driver for our own GPU (too early?). Perform performance measurements of GPUs. Perform performance measurements of GPUs. Create tests/demos for GPUs (DX9/OpenGL). Create tests/demos for GPUs (DX9/OpenGL).

10 Projects Build a driver for a GPU: Build a driver for a GPU: http://dri.sourceforge.net/ http://dri.sourceforge.net/ http://dri.sourceforge.net/ 3dfx: Voodoo 3, 4, 5. 3dfx: Voodoo 3, 4, 5. ATI: Rage, Radeon, R200 (8500). ATI: Rage, Radeon, R200 (8500). Others: Intel. Matrox, 3DLabs. Others: Intel. Matrox, 3DLabs. Read (hard to read?) code so could be the easiest solution. Boring. Information is NDAed so no more help available. Read (hard to read?) code so could be the easiest solution. Boring. Information is NDAed so no more help available. No info from IHVs? No info from IHVs? Reverse Engeniering. Reverse Engeniering. Emulation. Emulation.

11 Projects Reverse engeniering: Reverse engeniering: Memory mapped IO and DMA used. Memory mapped IO and DMA used. This means we should hack the kernel or the driver. This means we should hack the kernel or the driver. Linux: Linux: Source code available. Source code available. Driver code not available (NVidia, ATI). Driver code not available (NVidia, ATI). Windows: Windows: No source code. No source code. VxDs for entering inside the kernel. VxDs for entering inside the kernel. Or kernel debuggers (SoftIce). Or kernel debuggers (SoftIce).

12 Projects Dissassembly drivers (but who could read thousands of lines of assembly). Dissassembly drivers (but who could read thousands of lines of assembly). Legal issues? Legal issues?

13 Projects Emulation :) Emulation :) We have all the code and we can do whatever we want with it. We have all the code and we can do whatever we want with it. DreamCast: SH4 200 MHz and PowerVR2 (very similar hardware that the PC version). No shaders or T&L but deferred rendering. A lot of information out there (I have the developer kit). DreamCast: SH4 200 MHz and PowerVR2 (very similar hardware that the PC version). No shaders or T&L but deferred rendering. A lot of information out there (I have the developer kit). Xbox: Pentium III 733 and NV2A (similar to NV25, GeForce 4 Ti). Shaders supported. Similar to PC architecture (but unified memory and secure/encrypted crap). BIOS is disponible, also open source tools and information. Xbox: Pentium III 733 and NV2A (similar to NV25, GeForce 4 Ti). Shaders supported. Similar to PC architecture (but unified memory and secure/encrypted crap). BIOS is disponible, also open source tools and information.

14 Projects GameCube: PowerPC 433 MHz, ATI/ARTX Flipper. Very hard to get any information. No BIOS or images. No shaders. GameCube: PowerPC 433 MHz, ATI/ARTX Flipper. Very hard to get any information. No BIOS or images. No shaders. More fun. But also more difficult. More fun. But also more difficult. Legal issues. Legal issues.


Download ppt "Status – Week 270 Victor Moya. Summary ShaderEmulator. ShaderEmulator. ShaderSimulator. ShaderSimulator. Schedule. Schedule. Name. Name. Projects. Projects."

Similar presentations


Ads by Google