[PATCH 2/2] wined3d: Store and use stream offset in state block.
Paul Gofman
gofmanp at gmail.com
Thu Apr 4 09:49:09 CDT 2019
On 4/4/19 17:39, Henri Verbeet wrote:
> @@ -749,7 +753,7 @@ static void light_check_data(IDirect3DDevice9
> *device, const struct state_test *
>> "Chain stage %u: expected get_light_result %#x, got %#x.\n",
>> chain_stage, ldata->get_light_result, value.get_light_result);
>>
>> - ok(value.enabled == ldata->enabled,
>> + ok(!value.enabled == !ldata->enabled,
> Is that an unrelated change? I remember us caring about the specific
> value GetLightEnable() returns, so the test was probably intentionally
> written this way.
>
After rearranging some tests the test started failing with exactly the
same failing values under Wine and Windows, so I changed this to boolean
comparison. I will investigate this and get the test back to exact
values comparison, even if maybe I will have to add yet another quirk.
>> @@ -3641,6 +3641,7 @@ struct wined3d_saved_states
>> {
>> DWORD transform[(WINED3D_HIGHEST_TRANSFORM_STATE >> 5) + 1];
>> WORD streamSource; /* WINED3D_MAX_STREAMS, 16 */
>> + BOOL stream_offset_ignore;
>> WORD streamFreq; /* WINED3D_MAX_STREAMS, 16 */
> Putting a BOOL between two WORDs really isn't ideal for structure
> packing. Rather than just moving the BOOL though, perhaps it makes
> more sense to invert its meaning, take a bit out of "padding", and add
> a "DWORD stream_offset : 1;" instead?
>
store_stream_offset maybe? I suggest this as the flag does not influence
state block application, only the capturing of the offset.
More information about the wine-devel
mailing list