DirectX-ToDo

Wine Status DirectX DLL http://www.winehq.org/site/status_directx

See also DirectX and IntegrationProjects

DirectShow

  • finish graph control implementation (Run/Pause/Stop)
  • extend graph building process by taken into account filters added manually to the filtergraph
  • implement IReferenceClock in DSound renderer

  • windowed mode support in video renderer
  • generic splitter using libavformat (ffmpeg)
  • generic audio & video decoders using libavcodec (ffmpeg)

  • understand how plugin distributors work
  • play by mixing builtin & native components

  • capture stuff (CaptureGraphBuilder)

[Graphics Rendering Pipelines]

  1. D3D 8.1 pipeline DX 8.1 Pipeline Thanks to Richard Thomson

  2. D3D 9.0 pipeline DX 9.0 Pipeline Thanks to Richard Thomson

  3. D3D 10.0 pipeline DX 10.0 Pipeline also see: Pipeline Stages

[DirectDraw / Direct3DD1-7]

  • YUV overlays
  • OpenGL(partially there already) and Xrender accelerated DirectDraw

  • Completely GL independent 2D operation(lazy linking).
  • (./) Better LockRect/UnlockRect implementation (done using PBOs).

  • Software s3tc handling
  • Write some tests related to configuration

[D3D](d3d8, d3dx8, d3d9, wined3d)

  • Missing Functionalities: (General)

    • Shader translator still needs some cleaning up
    • Multisample support, ie FSAA etc. will require changes to (OpenGL child windows)
    • Finish shaders 3.0 support and make shaders 2.0/3.0 the default using GLSL if the card supports it. see DirectX-Shaders

    • Lock/Unlock: Only restore or copy when needed (example no save renders when WRITE_ONLY flags was used)
    • Improve the heap code and cache data instead of doing HeapAlloc (Resource Caching) the last few results will improve performance.

    • Filter wined3d caps in d3d8 :
      • We could detect all the card capabilities in wined3d (for a part this is done, for a part the d3d version is detected)
      • And in the d3d8 we could show only the caps corresponding to that d3d version.
    • Caps code to fully support (ps3.0 / vs3.0) see MS Pixel Shader Reference.

    • Window sizes / fullscreen support still needs more improvements and testing.
    • Priority Levels (Should be reasonably easy as opengl has this functionality) o LOD support see: Level-of-Detail White Paper

    • Support more query types, implement the timestamp queries using GL_nv_fence see: QuerySample User Guide, MSDN Queries

    • Proper support for floating point texture formats (for proper deferred shading and HDR support)
    • Fixups using vertex shaders instead of software ie, fixed function pipeline replacement.
    • Prefer GL_EXT_framebuffer_object over pbuffers.
    • Speed up color depth conversions (8bpp) with a shader
    • Avoid as many GlReadPixel and GlWritePixel calls as possible

    • Device interface
    • EvictManagedResources

    • ResrceMgrDiscard (needs EvictManagedResources)

    • Check* functions
    • TestCoop support

    • ValidateDevice (needs better Caps support)

    • GetInfo (needs better Caps support)

    • Visible Z Buffer
    • (./) Conversion from GLX to WGL

    • (./) MDI support

  • Other:

    • Get 3dmark 2005, 2006 software to the point of producing valuable output
    • Add more testcases, including visual ones
    • Test different Cards/Drivers: Nvidia, fglrx, mesa
    • Tidy up the WineD3D codebase and add comments and TRACEs
    • Implement D3DX9_xx.dll's see DirectX-D3DX9

[D3D](d3d10)

  • Create the d3d10 lib and start the .idl file for header generation.
  • Write stubs for the functions to allow the app to create all the interfaces.
  • Write test cases for reference counting. ddraw and d3d9 show that Microsoft does not stick to its own COM rules.
  • Make methods that have already 1:1 equivalents in wined3d call wined3d.
  • Add other methods as required to wined3d.
  • Possibly port D3D10 to Windows XP

  • Geforce8 features on NV cards useful for testing: Option "RegistryDwords" "8F773984=7; NvEmulate=50"

[DirectSound]

  • Hardware accelerated direct sound capture driver support using the Windows CE3 HAL API
  • 3D buffer support in software is present but incomplete.
  • 3D buffer hardware support
  • Sound effects on buffers
  • Capture effects
  • ASIO driver see bug 2161

  • Fix stutter problems in 'Emulation' mode.
  • Improve support for driver/soundcards that will only let us mmap the card's buffer at a fixed frequency.
  • Automatically switch to 'Emulation' mode if the driver/soundcard does not support mmap-ing the card's buffer.
  • DX9 support for new PCM formats (24/32 bit and float samples) and for more than 2 channels is not present.

[DirectMusic] (dmime, dmband, dmsynth, dmloader, dmcompos, dmstyle)

  • cleanup ParseDescriptor/Loading to have share code

  • use loaded datas (implementing Getters APIs and begin to play some sounds)
  • load wave tracks (dswave)
  • More tracks loading
  • use play APIs in RT play thead (ProcessMsgThread in dmime/performance)

  • finish processing/dispatch thread (IDirectMusicPerformance)

  • better support of unstreams
  • implement dmusic32 APIs

[DMScript]

  • VB script execution support (actually only source is loaded). Maybe using a generic Wine VB script kernel (as the vbscript.dll seems to provide on windows) using ole32/com (most of the needs are already here)
  • see also http://wiki.services.openoffice.org/wiki/VBA

DInput

  • Absolute positioning reporting needs verification.
  • DXGrab support in OpenGL is still missing.
  • Mouse doesn't wrap all the time and "escapes" game window.
  • Improve DX8 support (especially joystick)
  • Keyboard: Fix remaining layout, dead keys, hotkeys and focus issues.

[DirectPlay]

  • Real support for DirectPlay (for now dpnet APIs are mainly stubs)

[DevEnum]

  • Support the creation of special filters (Midi renderer, DSound renderer, WaveOut, WaveIn) and support the binding to these filters.

D3DRM

[DXDiagn]

  • Fill DirectSound desc container

  • Fill DirectMusic desc container

  • Fill DirectInput desc container

  • Fill DirectPlay desc container

  • Fill logical disks desc container
  • Fill System devices desc container see: IDxDiagContainer Interface

DIBEngine

  • Implement a DIB engine (Device independent bitmap engine) see bug 421, bug 3902

OpenGL

  • (./) Support all WGL extensions which have GLX counterparts (like PBuffers or render to texture for example).

  • Rewrite wglShareLists() using glXCopyContext and context recreation instead of delaying context creation bug 11436

  • (./) Better WGL_render_texture support

  • WGL_render_depth_texture extension which layers on WGL_render_texture.
  • (./) Windowed OpenGL support see bug 2398

  • (./) We need to revert part of the x11.drv window management rewrite to readd a X11 child window for the client area of the toplevel window. This is needed to give us more pixel formats (this will be used in combination with the xcomposite/pixmap window rendering backend). see OpenGL in child windows

Useful tweaking / capability related info

Please consider making a donation to the Wine Party Fund...........http://winehq.org/site/contributing#wpf


CategoryToDo

DirectX-ToDo (last edited 2008-05-11 23:15:07 by nathan.n)