On Mon Mar 4 19:03:27 2024 +0000, Stefan Dösinger wrote:
> What does clipped mean here? Outside of the 0.0;1.0 depth range?
> In the TLVERTEX case you get depth values -0.5, 6.5 and -3.0, suggesting
> that the near and far clip planes don't matter. If I understand this
> test here right they do matter for LVERTEX. That is consistent with
> later d3d versions where Z clipping is essentially disabled when drawing
> pretransformed geometry with the right settings.
> Another way to look at this is that Z clipping is done by
> D3DPROCESSVERTICES_TRANSFORM not the draw op (D3DOP_TRIANGLE).
Yes, depth-clipped.
If I'm understanding your last statement properly, it doesn't seem right. Two triangles could share one or two vertices and still be clipped independently. Further, several of the quads in this test have all vertices outside of [0,1] depth range, yet the portions passing through that depth range do result in successful picks.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3422#note_63433
On Mon Mar 4 19:03:26 2024 +0000, Stefan Dösinger wrote:
> I would expect it to write 3 pick records if the input size in
> record_count is larger than the number retrieved. I.e., if you set
> record_count = 4 and make the array large enough it should write 3 and
> leave the 4th untouched. That's the usual pattern for getters like this
> at least.
I checked this, and you are correct. I will improve the test to cover this as well.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3422#note_63430
Regarding dirty rectangles:<br>
Documentation for `ForceUpdate` states that "The system might update any region that is larger than the specified rectangle, including possibly the entire window". While native seems to use a sort of dirty-rectangle approach, for this MR, I am simply dirtying the entire surface. If someday someone did want to more-closely match the behavior of native, much can be learned from the rectangles passed to the update callbacks.
--
v5: d3drm: Add support for device update callbacks.
d3drm: Blit render target to primary surface on device update.
d3drm: Implement parameter validation for viewport force update.
d3drm/tests: Add tests for Direct3DRMDevice Update
https://gitlab.winehq.org/wine/wine/-/merge_requests/5161
Application "ZusiDisplay" wants to set these socket options. setsockopt() currently returns an error on wine, which prevents the application from working correctly.
I'm not really sure if I'm using the IOCTL_AFD_WINE_SET/GET_* correctly. Maybe the new ones should have different "function" numbers and be sorted below the one for TCP_NODELAY?
Also, not sure if anything needs to be done in unix/socket.c for portability. Are these TCP_KEEPIDLE etc. constants defined on all OSes supported by wine? If not, how should I handle this?
ZusiDisplay seems to work fine if the setsockopt() call is ignored in wine, without returning an error. So if this merge request is not that great, I'd be happy to send a merge request to ignore the call instead.
--
v3: ws2_32: Implement TCP_KEEP{ALIVE,CNT,INTVL} options.
ws2_32/tests: Test TCP_KEEP{ALIVE,CNT,INTVL} options.
include: Add TCP_KEEPCNT and TCP_KEEPINTVL definitions.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5195