Pixel Shader Output doesn't match Final Framebuffer value in PIX

Started by
5 comments, last by gsamour 12 years, 10 months ago
framebuffercolorandvaluedifferent.png

I'm writing out all four channels, but then somehow the rgb channels end up with the Alpha value, and the alpha channel ends up with 1.0... Any ideas? At this point in my render, alpha blending is enabled because I'm doing deferred shading. The current pass is the light pass and it does additive blending.

Any help is appreciated :)
Advertisement
Whats the current blend state, exactly?

Whats the current blend state, exactly?


Blend Op is ADD, and both SRCBLEND and DESTBLEND are ONE
Blend Op Alpha is also ADD, and both SRCBLENDALPHA and DESTBLENDALPHA are ONE
Just in case, I'm also setting D3DRS_SEPARATEALPHABLENDENABLE to FALSE. AFAIK, this means that:

whatever BLENDOP, SRCBLEND, and DESTBLEND are, they're also applied to BLENDOPALPHA, SRCBLENDALPHA, and DESTBLENDALPHA.

What is D3DRS_COLORWRITEENABLE set to?

What is D3DRS_COLORWRITEENABLE set to?


It's set to 15, which means that all channels are enabled.
Ok, I'm pretty sure I know what's going on. My apologies, as it seems the problem is my lack of PIX knowledge. PIX shows the many events a pixel goes through, like render calls. Then it shows the final framebuffer value for the pixel (which really means the final framebuffer value for the pixel's coordinates). I was comparing a render call event when drawing the lights to a render target with the final framebuffer value. Obviously these two will be different since the pixel output value I debugged is for the light render target and the final framebuffer value is the final color on screen after combining the light target with a color target. Thanks for your replies!

This topic is closed to new replies.

Advertisement