diff --git a/core/rend/dx11/oit/dx11_oitbuffers.h b/core/rend/dx11/oit/dx11_oitbuffers.h index 0866eda9e..d86930777 100644 --- a/core/rend/dx11/oit/dx11_oitbuffers.h +++ b/core/rend/dx11/oit/dx11_oitbuffers.h @@ -45,7 +45,7 @@ public: } if (FAILED(hr)) { - WARN_LOG(RENDERER, "Pixels buffer creation failed"); + WARN_LOG(RENDERER, "Pixels buffer creation failed: %x", hr); return; } } @@ -59,7 +59,7 @@ public: hr = device->CreateUnorderedAccessView(pixelsBuffer, &uaView, &pixelsBufferView.get()); if (FAILED(hr)) - WARN_LOG(RENDERER, "Pixels buffer UAV creation failed"); + WARN_LOG(RENDERER, "Pixels buffer UAV creation failed: %x", hr); } void resize(int width, int height) @@ -84,7 +84,7 @@ public: HRESULT hr = device->CreateTexture2D(&desc, nullptr, &abufferPointersTex.get()); if (FAILED(hr)) { - WARN_LOG(RENDERER, "A-buffer texture creation failed"); + WARN_LOG(RENDERER, "A-buffer texture creation failed: %x", hr); return; } D3D11_UNORDERED_ACCESS_VIEW_DESC uaView{}; @@ -93,7 +93,7 @@ public: hr = device->CreateUnorderedAccessView(abufferPointersTex, &uaView, &abufferPointersView.get()); if (FAILED(hr)) - WARN_LOG(RENDERER, "A-buffer texture UAV creation failed"); + WARN_LOG(RENDERER, "A-buffer texture UAV creation failed: %x", hr); } void bind() diff --git a/core/rend/dx11/oit/dx11_oitshaders.cpp b/core/rend/dx11/oit/dx11_oitshaders.cpp index 82bcbc2e8..ea4ff6ba7 100644 --- a/core/rend/dx11/oit/dx11_oitshaders.cpp +++ b/core/rend/dx11/oit/dx11_oitshaders.cpp @@ -527,61 +527,6 @@ PSO main(in VertexIn inpix) #if PASS == PASS_COLOR pso.col = color; #elif PASS == PASS_OIT - // Discard as many pixels as possible - switch (cur_blend_mode.y) // DST - { - case ONE: - switch (cur_blend_mode.x) // SRC - { - case ZERO: - discard; - break; - case ONE: - case OTHER_COLOR: - case INVERSE_OTHER_COLOR: - if (all(color == 0.f)) - discard; - break; - case SRC_ALPHA: - if (color.a == 0.f || all(color.rgb == 0.f)) - discard; - break; - case INVERSE_SRC_ALPHA: - if (color.a == 1.0 || all(color.rgb == 0.f)) - discard; - break; - } - break; - case OTHER_COLOR: - if (cur_blend_mode.x == ZERO && all(color == 1.f)) - discard; - break; - case INVERSE_OTHER_COLOR: - if (cur_blend_mode.x <= SRC_ALPHA && all(color == 0.f)) - discard; - break; - case SRC_ALPHA: - if ((cur_blend_mode.x == ZERO || cur_blend_mode.x == INVERSE_SRC_ALPHA) && color.a == 1.f) - discard; - break; - case INVERSE_SRC_ALPHA: - switch (cur_blend_mode.x) // SRC - { - case ZERO: - case SRC_ALPHA: - if (color.a == 0.f) - discard; - break; - case ONE: - case OTHER_COLOR: - case INVERSE_OTHER_COLOR: - if (all(color == 0.f)) - discard; - break; - } - break; - } - uint2 coords = uint2(inpix.pos.xy); uint idx = getNextPixelIndex(); @@ -1126,7 +1071,7 @@ ComPtr DX11OITShaders::compilePS(const char* source, const ch ComPtr shader; if (blob) { - if (device->CreatePixelShader(blob->GetBufferPointer(), blob->GetBufferSize(), nullptr, &shader.get()) != S_OK) + if (FAILED(device->CreatePixelShader(blob->GetBufferPointer(), blob->GetBufferSize(), nullptr, &shader.get()))) ERROR_LOG(RENDERER, "Pixel shader creation failed"); } diff --git a/core/rend/gl4/gles.cpp b/core/rend/gl4/gles.cpp index 58ad6596f..c80fd7c42 100644 --- a/core/rend/gl4/gles.cpp +++ b/core/rend/gl4/gles.cpp @@ -388,60 +388,6 @@ void main() #if PASS == PASS_COLOR FragColor = color; #elif PASS == PASS_OIT - // Discard as many pixels as possible - switch (cur_blend_mode.y) // DST - { - case ONE: - switch (cur_blend_mode.x) // SRC - { - case ZERO: - discard; - case ONE: - case OTHER_COLOR: - case INVERSE_OTHER_COLOR: - if (color == vec4(0.0)) - discard; - break; - case SRC_ALPHA: - if (color.a == 0.0 || color.rgb == vec3(0.0)) - discard; - break; - case INVERSE_SRC_ALPHA: - if (color.a == 1.0 || color.rgb == vec3(0.0)) - discard; - break; - } - break; - case OTHER_COLOR: - if (cur_blend_mode.x == ZERO && color == vec4(1.0)) - discard; - break; - case INVERSE_OTHER_COLOR: - if (cur_blend_mode.x <= SRC_ALPHA && color == vec4(0.0)) - discard; - break; - case SRC_ALPHA: - if ((cur_blend_mode.x == ZERO || cur_blend_mode.x == INVERSE_SRC_ALPHA) && color.a == 1.0) - discard; - break; - case INVERSE_SRC_ALPHA: - switch (cur_blend_mode.x) // SRC - { - case ZERO: - case SRC_ALPHA: - if (color.a == 0.0) - discard; - break; - case ONE: - case OTHER_COLOR: - case INVERSE_OTHER_COLOR: - if (color == vec4(0.0)) - discard; - break; - } - break; - } - ivec2 coords = ivec2(gl_FragCoord.xy); uint idx = getNextPixelIndex(); diff --git a/core/rend/vulkan/oit/oit_shaders.cpp b/core/rend/vulkan/oit/oit_shaders.cpp index df06af9f5..36136c2f6 100644 --- a/core/rend/vulkan/oit/oit_shaders.cpp +++ b/core/rend/vulkan/oit/oit_shaders.cpp @@ -396,60 +396,6 @@ void main() #if PASS == PASS_COLOR FragColor = color; #elif PASS == PASS_OIT - // Discard as many pixels as possible - switch (cur_blend_mode.y) // DST - { - case ONE: - switch (cur_blend_mode.x) // SRC - { - case ZERO: - discard; - case ONE: - case OTHER_COLOR: - case INVERSE_OTHER_COLOR: - if (color == vec4(0.0)) - discard; - break; - case SRC_ALPHA: - if (color.a == 0.0 || color.rgb == vec3(0.0)) - discard; - break; - case INVERSE_SRC_ALPHA: - if (color.a == 1.0 || color.rgb == vec3(0.0)) - discard; - break; - } - break; - case OTHER_COLOR: - if (cur_blend_mode.x == ZERO && color == vec4(1.0)) - discard; - break; - case INVERSE_OTHER_COLOR: - if (cur_blend_mode.x <= SRC_ALPHA && color == vec4(0.0)) - discard; - break; - case SRC_ALPHA: - if ((cur_blend_mode.x == ZERO || cur_blend_mode.x == INVERSE_SRC_ALPHA) && color.a == 1.0) - discard; - break; - case INVERSE_SRC_ALPHA: - switch (cur_blend_mode.x) // SRC - { - case ZERO: - case SRC_ALPHA: - if (color.a == 0.0) - discard; - break; - case ONE: - case OTHER_COLOR: - case INVERSE_OTHER_COLOR: - if (color == vec4(0.0)) - discard; - break; - } - break; - } - ivec2 coords = ivec2(gl_FragCoord.xy); uint idx = getNextPixelIndex();