multiple and confused textures

    Sep 04 2006 | 10:42 am
    hello, i had a rather shady thing happen last night that i'm not able to recreate. i have a patch with a applying shaders to a, and a doing some masking/overlaying of textures (both of these patches have been posted previously, but i'm not trying to combine them). each process produces a plane/deformed-plane that i render in the same openGL context. for whatever reason, during one attempt, i ended up with the textures linked to my object rendered onto the OTHER plane (i.e. the one created by my object). now, i'm just trying to understand how that could possibly happen the way things are linked up in my world. i basically name everything; my textures (video matrices going into, my shaders and all; i then use the 'texture' message to or to get access to my textures within glsl. i have unique names for all my textures and i do not mix up what object is being told what texture to use.
    on the otherhand, IN my glsl code, i often use the same names for the samplers. i.e., tex0, for the first, tex1 for the second and so on. could THAT possibly be the cause of my mixup?
    if one has two shaders active, does the graphics card maintain ONE global variable space by any chance? in which variable names can possibly conflict with one another?
    a note: i apologize for not having an example patch that demonstrates this. as i said, i can't reproduce the problem consistently. but it definitely was happening and i spend a good bit of time investigating it while it was happening and then on the next run of the patch, it was gone. i only ask the question in order to possibly learn whether there are some basic principals of which i'm not aware that could contribute to such an effect. if this question is too vague and abstract and thus impossible to answer without a demonstrative path, then please kindly let turn your head and let it slide.

    • Sep 04 2006 | 11:06 am
      It's definitely not due to names (tex0, etc.) getting mixed up on the graphics card. Resources are bound to those names when the shader object is bound on the GPU and stay that way until an OpenGL API call is made to change things. You can at least eliminate that from your debugging efforts. If there is leaking of textures, it's going to be happening in Jitter, not because of the GPU.