Fix PostProcessing shader garbage on screen.

This fixes issue 7574 where we are sampling from uninitialized texture data which can basically be anything from VRAM.

@degasus This does initialize to zero.

`new type[size]()` value initializes the array to be zeroed out.
On Aug 26, 2014 8:18 AM, "Markus Wick" <notifications@github.com> wrote:

> In Source/Core/VideoBackends/OGL/PostProcessing.cpp:
>
> > @@ -157,7 +157,18 @@ void OpenGLPostProcessing::Update(u32 width, u32 height)
> >  		// alloc texture for framebuffer
> >  		glActiveTexture(GL_TEXTURE0+9);
> >  		glBindTexture(GL_TEXTURE_2D, m_texture);
> > -		glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
> > +
> > +		if (GLExtensions::Supports("VERSION_4_4"))
> > +		{
> > +			GLuint clear_colour = 0;
> > +			glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
> > +			glClearTexImage(m_texture, 0, GL_RGBA, GL_UNSIGNED_BYTE, &clear_colour);
> > +		}
> > +		else
> > +		{
> > +			std::unique_ptr<unsigned char[]> clear_colour(new unsigned char[width * height * 4]());
>
> Is this defined to be initialized to zero? I don't think so.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/dolphin-emu/dolphin/pull/882/files#r16709531>.
>