diff --git a/libobs-d3d11/d3d11-subsystem.cpp b/libobs-d3d11/d3d11-subsystem.cpp index aa8c751fabeaa531150236c15827f9fb1504185c..10d01a7f2d58272d95865742f35660445d1e3fd0 100644 --- a/libobs-d3d11/d3d11-subsystem.cpp +++ b/libobs-d3d11/d3d11-subsystem.cpp @@ -857,6 +857,11 @@ void device_load_pixelshader(device_t device, shader_t pixelshader) device->context->PSSetShader(shader, NULL, 0); device->context->PSSetConstantBuffers(0, 1, &constants); device->context->PSSetSamplers(0, GS_MAX_TEXTURES, states); + + for (int i = 0; i < GS_MAX_TEXTURES; i++) + if (device->curSamplers[i] && + device->curSamplers[i]->state != states[i]) + device->curSamplers[i] = nullptr; } void device_load_defaultsamplerstate(device_t device, bool b_3d, int unit)