Am 03.02.2010 um 18:17 schrieb Henri Verbeet:
On the subject of actually supporting software devices, we should probably implement those by creating a software or reference adapter with appropriate gl_info and pipe implementations and creating a device based on that.
Wouldn't that conflict with how adapters work in the d3d8/9 API? There an adapter identifies the display hardware, not necessarily the rendering device.
Or, to phrase it in API terms:
static HRESULT WINAPI IWineD3DImpl_CreateDevice(IWineD3D *iface, UINT adapter_idx, WINED3DDEVTYPE device_type, HWND focus_window, DWORD flags, IUnknown *parent, IWineD3DDeviceParent *device_parent, IWineD3DDevice **device)
You'd want to remove device_type from here as well if we merge it into the adapter(and then deal with splitting up wined3d adapters into d3d8/9 adapters and device types in the client libs)
On 3 February 2010 19:06, Stefan Dösinger stefandoesinger@gmx.at wrote:
Am 03.02.2010 um 18:17 schrieb Henri Verbeet:
On the subject of actually supporting software devices, we should probably implement those by creating a software or reference adapter with appropriate gl_info and pipe implementations and creating a device based on that.
Wouldn't that conflict with how adapters work in the d3d8/9 API? There an adapter identifies the display hardware, not necessarily the rendering device.
A little, but the adapter as such is never exposed in those APIs, just its index. For cases where it matters (e.g. CheckDeviceFormat()) you also get a device type parameter.
Or, to phrase it in API terms:
static HRESULT WINAPI IWineD3DImpl_CreateDevice(IWineD3D *iface, UINT adapter_idx, WINED3DDEVTYPE device_type, HWND focus_window, DWORD flags, IUnknown *parent, IWineD3DDeviceParent *device_parent, IWineD3DDevice **device)
You'd want to remove device_type from here as well if we merge it into the adapter(and then deal with splitting up wined3d adapters into d3d8/9 adapters and device types in the client libs)
Exposing real wined3d adapters to the client libraries may not be a bad idea, but it's not required here. You could use adapter_idx and device_type together to pick an appropriate adapter to create the device with.
Am 03.02.2010 um 19:53 schrieb Henri Verbeet:
On 3 February 2010 19:06, Stefan Dösinger stefandoesinger@gmx.at wrote:
Am 03.02.2010 um 18:17 schrieb Henri Verbeet:
On the subject of actually supporting software devices, we should probably implement those by creating a software or reference adapter with appropriate gl_info and pipe implementations and creating a device based on that.
Wouldn't that conflict with how adapters work in the d3d8/9 API? There an adapter identifies the display hardware, not necessarily the rendering device.
A little, but the adapter as such is never exposed in those APIs, just its index. For cases where it matters (e.g. CheckDeviceFormat()) you also get a device type parameter.
So you want to separate d3d9 adapters from wined3d adapters? Sounds ok to me. We should just find a new name for one of them when(and if ever) we write a SW vertex pipeline.