How to implement MRT ( Draw_buffers ) in NV3x

I have try the MRT in NV3x. but failed .
Anyboy can tell me why?
Here is the problem :
My Card : FX5600
Driver version: FW 76.10 .(surpport GL 2.0)
glGetIntergerv(GL_MAX_DRAW_BUFFERS) can return a number 4.

But in RenderMonkey ,when I change the gl_FragColor to gl_FragData[0] . the Shader can’t link with error message like this :

<stdlib>(10367) : error C5102: semantics attribute “COLOR” has too big of a numeric index (1)
<stdlib>(10367) : error C5102: semantics attribute “COLOR” has too big of a numeric index (2)
<stdlib>(10367) : error C5102: semantics attribute “COLOR” has too big of a numeric index (3)
<stdlib>(10367) : error C5041: cannot locate suitable resource to bind parameter “<null atom>”
<stdlib>(10367) : error C5041: cannot locate suitable resource to bind parameter “<null atom>”
<stdlib>(10367) : error C5041: cannot locate suitable resource to bind parameter “<null atom>”

so I try a simple example in NVSDK . the same error. I use pbuffer. wglBindTexImageARB(WGL_AUX0_ARB) also return 0 :frowning:

Can any one help me ??

AFAIK NV3x hardware doesn’t support MRT. So you can’t use gl_FragData[n].

yooyo

Originally posted by yooyo:
[b]AFAIK NV3x hardware doesn’t support MRT. So you can’t use gl_FragData[n].

yooyo[/b]
Yes, that’s true. NV3x doesn’t support MRTs.

But why . they export the function .glDrawBuffers
and let the glGetIntergerv(GL_MAX_DRAW_BUFFERS) return 4.
i think it cause a lot of confusion…

Well 76.10 is “heavy” beta driver, so it is a driver bug (or you maybe switch on NV40 emulation in NVEmulate.exe).

yooyo

It seems to be the NX3x really not surpport MRT .
because if I emulate the 6800 mode. it surpport gl_FragData[0].
thank you yoyo :slight_smile:

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.