1 / 20

Status – Week 259

Status – Week 259. Victor Moya. Summary. OpenGL Traces. DirectX Traces. Proxy CPU. Command Processor. News. F-Buffer. Imagine. OpenGL Traces. GLTrace. We use the code (GNU)? Or do we base our own tracer on it? Works for Win32, Linux and BEOS. DLL/Shared Library wrapper

neve-walton
Download Presentation

Status – Week 259

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Status – Week 259 Victor Moya

  2. Summary • OpenGL Traces. • DirectX Traces. • Proxy CPU. • Command Processor. • News. • F-Buffer. • Imagine.

  3. OpenGL Traces • GLTrace. • We use the code (GNU)? • Or do we base our own tracer on it? • Works for Win32, Linux and BEOS. • DLL/Shared Library wrapper • Traces OpenGL function calls up to specification v. 1.1 and a few extensions. • Traces are in text format. Implement a binary format version?

  4. OpenGL Traces • Additional work needed: • Upgrade to OpenGL specification v. 1.4 and all the extensions we could find in benchmarks and games (NVidia, ATI, ARB, …). • Check correction of traces. • Add on the fly compresion (zlib). • A list of functions can be obtained from 3D-Analyzer dat2.001 export list. • Create a trace player: GLplay. • Help to check the traces. • Visualize what we are simulating using other implementations (MESA, NVidia, ATI).

  5. DirectX Traces • There is a different interface/library for each DX version: • DX7: ignore? • DX8: d3d8.dll. • DX9: d3d9.dll. • DX is based in classes, not in functions like OpenGL: less entry point functions.

  6. DirectX Traces • d3d8.dll exports: • DebugSetMute(); • Direct3DCreate8(); ------------- • ValidatePixelShader(); • ValidateVertexShader(); • Direct3DCreate8() returns a IDirect3D8 object which is used to create a IDirect3DDevice8 object which is used to draw the scene.

  7. DirectX Traces • d3d9.dll exports: • DebugSetLevel() • DebugSetMute() • Direct3DCreate9() --------- • Direct3DShaderValidatorCreate9() • PSGPError() • PSGPSampleTexture() • Same as DX8. Direct3DCreate9() creates a IDirect3D8 object which can be used to create a IDirect3DDevice9 where the scene can be drawn.

  8. DirectX Traces • D3D8 Interfaces (classes): • IDirect3D8 • IDirect3DBaseTexture8 • IDirect3DCubeTexture8 • IDirect3DDevice8 • IDirect3DIndexBuffer8 • IDirect3DResource8 • IDirect3DSurface8 • IDirect3DSwapChain8 • IDirect3DTexture8 • IDirect3DVertexBuffer8 • IDirect3DVolume8 • IDirect3DVolumeTexture8

  9. DirectX Traces • D3D9 Interfaces: • IDirect3D9 • IDirect3DBaseTexture9 • IDirect3DCubeTexture9 • IDirect3DDevice9 • IDirect3DIndexBuffer9 • IDirect3DPixelShader9 • IDirect3DQuery9 • IDirect3DResource9 • IDirect3DStateBlock9 • IDirect3DSurface9 • IDirect3DSwapChain9 • IDirect3DTexture9 • IDirect3DVertexBuffer9 • IDirect3DVertexDeclaration9 • IDirect3DVertexShader9 • IDirect3DVolume9 • IDirect3DVolumeTexture9

  10. DirectX Traces • D3D8 functions: • A list can be obtained from 3D-Analyzer dat1.001 export list. • D3D9 functions: • A list can be obtained from 3D-Analyzer dat3.001 export list.

  11. DirectX Traces • Implementation: • DLL wrapper. • Support for multiple DX versions: multiple DLLs and interfaces (d3d8.dll, d3d9.dll). • Trace format: • Text. • Binary. • Compressed. • D3DPlayer: • Reproduce the trace: verification, visualization.

  12. DirectX Traces • Alternatives: • 3D-Analyzer: theorically can generate traces from both OpenGL, DX8 and DX9, but I couldn’t make it work. • DXSpy: tool from DX9 SDK. Uses d3d9spy.dll (must be renamed) to trace all DX9 function calls. Can be used to check on fly DX state, function calls, use the debugger, add break points, etc. It doesn’t seems to have the option to log to a file that information though.

  13. Proxy CPU • (alternative names are accepted). • This box would read the OpenGL or DX traces and act as the GPU driver and CPU side of the graphic pipeline. • Would control the AGP port input/output. • Would control external (system) memory. • Would translate from DX/OpenGL to the commands used by our GPU. • Would control the timing of the commands issued to the GPU.

  14. Command Processor • Receives commands and data through the AGP port (?). • Signals: AGPRead, AGPWrite? • Receives commands (the same for DX or OpenGL traces) from the Proxy CPU box. • Controls the GPU. • Sends data and commands to the different GPU units: Vertex, Primitive, Rasterization, Fragment, etc.

  15. News and Rumors • Nvidia (rumors): • NV31: 4x1, 325/275 • NV34: 4x1 (?), no VS (?), 250/200 and 250/166. • ATI: • R350: 380 MHz 340 MHz DDR, 115 MTransistors, 0.15 process, 8x1, 4 vs, F-Buffer. • RV350: 2 vertex shader, 4 pixel shaders, 1 TMU per pipe, 0.13 process. R9600 325/200, R9600 PRO 400/600. • GDC’03 from March 5th.

  16. F-Buffer • SIGGRAPH/EuroGraphics Graphics Hardware Workshop 2001. • The F-Buffer: A Rasterization-Order FIFO Buffer for Multi-Pass Rendering. • William R. Mark and Kekoa ProudFoot. • Stanford University.

  17. F-Buffer • Hardware alternative to multipass. • Fragment stream buffer. • The F-Buffer is a memory pool the size of the framebuffer (pixels). • A fragment can write to the F-Buffer its output rather than to the framebuffer. • Fragments are stored and retrieved in FIFO order. • Fragments in the F-Buffer are feed to the fragment pipeline.

  18. F-Buffer • Replaces software multipass rendering for hardware virtualization (geometry must be transformed with each pass). • Enables unlimited length pixel shaders. • Multiple intermediate values supported. • Helps with semitransparent pixels (alpha textures).

  19. F-Buffer

  20. Imagine • ‘Computer Graphics on a Stream Architecture’, John Douglas Owens, PhD dissertation. • Not read yet either.

More Related