diff --git a/dll/directx/wine/d3d9/device.c b/dll/directx/wine/d3d9/device.c index 9038a1fffc825..977cf43adacfc 100644 --- a/dll/directx/wine/d3d9/device.c +++ b/dll/directx/wine/d3d9/device.c @@ -3884,7 +3884,9 @@ static HRESULT WINAPI d3d9_device_SetPixelShaderConstantB(IDirect3DDevice9Ex *if TRACE("iface %p, reg_idx %u, data %p, count %u.\n", iface, reg_idx, data, count); wined3d_mutex_lock(); - hr = wined3d_device_set_ps_consts_b(device->wined3d_device, reg_idx, count, data); + hr = wined3d_stateblock_set_ps_consts_b(device->update_state, reg_idx, count, data); + if (SUCCEEDED(hr) && !device->recording) + hr = wined3d_device_set_ps_consts_b(device->wined3d_device, reg_idx, count, data); wined3d_mutex_unlock(); return hr;