Stefan Dösinger (@stefan) commented about dlls/d3drm/tests/d3drm.c:
>
> IDirect3DRM_Release(d3drm1);
> }
> +
> +struct update_rect_context
> +{
> + int rect_count;
> + D3DRECT rect;
> +};
> +
> +static void CDECL update_cb_modify_rect(IDirect3DRMDevice *device, void *arg, int rect_count, D3DRECT *update_rects)
> +{
> + if (rect_count > 0)
> + update_rects[0].x1 = 999999;
> +}
> +static void CDECL update_cb_get_rect(IDirect3DRMDevice *device, void *arg, int rect_count, D3DRECT *update_rects)
Suggestion: Check if *device is indeed the IDirect3DRMDevice (QI IID_IDirect3DRMDevice from it and compare pointers). We have cases in plain ddraw where callbacks and getters return the interface passed in instead of what the header says and applications depend on it.
IOW, if you register the callback with IDirect3DRMDevice3::AddUpdateCallback you may or may not get an IDirect3DRMDevice3 * here.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5161#note_62908
Stefan Dösinger (@stefan) commented about dlls/d3drm/device.c:
> }
>
> object->primary_surface = primary_surface;
> - object->clipper = clipper;
> - IDirectDrawClipper_AddRef(clipper);
I am wondering if this breaks the tests (test_create_device_from_clipper1 checks the refcount), but the IDirectDrawSurface::SetClipper holds a reference itself. So we're probably fine with not holding a ref ourselves, especially if we don't use the clipper object anywhere.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5161#note_62907
This applies on top of !662, the last four commits belong here.
Here we compute a topological order (plus some additional properties) of the shader blocks. Eventually the blocks will be emitted precisely in this order, after having been enriched with structured control flow information.
--
v4: vkd3d-shader/ir: Keep loops contiguous in the topological sort.
vkd3d-shader/ir: Dump the topological order of the control flow graph.
vkd3d-shader/ir: Topologically sort the control flow graph.
vkd3d-shader/ir: Allow adding to a block list without checking for duplicates.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/672
--
v22: vkd3d-shader/dxil: Emit a specific warning for explicit wave size.
vkd3d-shader/dxil: Emit a specific warning for RT acceleration structs.
vkd3d-shader/spirv: Implement the UNPACK_4X8 instruction.
vkd3d-shader/dxil: Implement DX intrinsic Unpack4x8.
vkd3d-shader/spirv: Implement the PACK_4X8 instruction.
vkd3d-shader/dxil: Implement DX intrinsic Pack4x8.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/648