Alexandre Julliard pushed to branch master at wine / wine
Commits: 01550dc2 by Elizabeth Figura at 2024-08-27T20:48:18+02:00 wined3d: Invalidate STATE_SHADER instead of STATE_POINT_ENABLE.
- - - - - 9313c14c by Elizabeth Figura at 2024-08-27T20:48:19+02:00 wined3d: Invalidate the PS from wined3d_device_apply_stateblock() when texture states change.
The eventual goal for the HLSL FFP pipeline is to set the shader to an internally constructed wined3d_shader object early, so that all the existing backend logic that works with real shaders can be reused.
Specifically, we want to construct this shader before e.g. context_gl_load_shader_resources() and context_update_stream_info(), both functions which currently execute before applying state tables but which operate on the currently bound shaders. In fact, because the HLSL FFP pipeline is intended to be backend-agnostic, the goal is to construct the replacement shaders from within wined3d_cs_exec_draw().
This means that the "invalidate the FFP shader" flag—for which we simply reuse STATE_SHADER—needs to be set earlier, specifically before the draw call is submitted to the CS. Hence we do it from wined3d_device_apply_stateblock().
- - - - - 4bf3c1ae by Elizabeth Figura at 2024-08-27T20:48:21+02:00 wined3d: Invalidate the PS from wined3d_device_apply_stateblock() when WINED3D_RS_COLORKEYENABLE changes.
- - - - - 7e2de597 by Elizabeth Figura at 2024-08-27T20:48:21+02:00 wined3d: Invalidate the PS from wined3d_device_apply_stateblock() when the texture changes.
If the texture changes in a meaningful way, that is.
- - - - - fd2fd541 by Elizabeth Figura at 2024-08-27T20:48:23+02:00 wined3d: Invalidate the VS from wined3d_device_apply_stateblock() when WINED3D_RS_NORMALIZENORMALS changes.
- - - - -
7 changed files:
- dlls/wined3d/cs.c - dlls/wined3d/ffp_gl.c - dlls/wined3d/glsl_shader.c - dlls/wined3d/shader_spirv.c - dlls/wined3d/stateblock.c - dlls/wined3d/utils.c - dlls/wined3d/wined3d_private.h
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/1c27121ef6de9d85c3098424c6bdcc...