mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 06:40:11 +01:00
r600: glsl - allow specifying texture sampler via uniforms
looks kinda hackish, should rethink later
This commit is contained in:
parent
94723b60cf
commit
50ab51101e
4 changed files with 11 additions and 1 deletions
|
|
@ -4840,7 +4840,7 @@ GLboolean assemble_TEX(r700_AssemblerBase *pAsm)
|
|||
pAsm->need_tex_barrier = GL_TRUE;
|
||||
}
|
||||
// Set src1 to tex unit id
|
||||
pAsm->S[1].src.reg = pAsm->pILInst[pAsm->uiCurInst].TexSrcUnit;
|
||||
pAsm->S[1].src.reg = pAsm->SamplerUnits[pAsm->pILInst[pAsm->uiCurInst].TexSrcUnit];
|
||||
pAsm->S[1].src.rtype = SRC_REG_TEMPORARY;
|
||||
|
||||
//No sw info from mesa compiler, so hard code here.
|
||||
|
|
|
|||
|
|
@ -416,6 +416,7 @@ typedef struct r700_AssemblerBase
|
|||
SHADER_PIPE_TYPE currentShaderType;
|
||||
struct prog_instruction * pILInst;
|
||||
GLuint uiCurInst;
|
||||
GLubyte SamplerUnits[MAX_SAMPLERS];
|
||||
GLboolean bR6xx;
|
||||
/* helper to decide which type of instruction to assemble */
|
||||
GLboolean is_tex;
|
||||
|
|
|
|||
|
|
@ -308,6 +308,7 @@ GLboolean r700TranslateFragmentShader(struct r700_fragment_program *fp,
|
|||
GLuint number_of_colors_exported;
|
||||
GLboolean z_enabled = GL_FALSE;
|
||||
GLuint unBit;
|
||||
int i;
|
||||
|
||||
//Init_Program
|
||||
Init_r700_AssemblerBase( SPT_FP, &(fp->r700AsmCode), &(fp->r700Shader) );
|
||||
|
|
@ -320,6 +321,10 @@ GLboolean r700TranslateFragmentShader(struct r700_fragment_program *fp,
|
|||
|
||||
InitShaderProgram(&(fp->r700AsmCode));
|
||||
|
||||
for(i=0; i < MAX_SAMPLERS; i++)
|
||||
{
|
||||
fp->r700AsmCode.SamplerUnits[i] = fp->mesa_program.Base.SamplerUnits[i];
|
||||
}
|
||||
if( GL_FALSE == AssembleInstr(0,
|
||||
mesa_fp->Base.NumInstructions,
|
||||
&(mesa_fp->Base.Instructions[0]),
|
||||
|
|
|
|||
|
|
@ -337,6 +337,10 @@ struct r700_vertex_program* r700TranslateVertexShader(GLcontext *ctx,
|
|||
|
||||
InitShaderProgram(&(vp->r700AsmCode));
|
||||
|
||||
for(i=0; i < MAX_SAMPLERS; i++)
|
||||
{
|
||||
vp->r700AsmCode.SamplerUnits[i] = vp->mesa_program->Base.SamplerUnits[i];
|
||||
}
|
||||
if(GL_FALSE == AssembleInstr(0,
|
||||
vp->mesa_program->Base.NumInstructions,
|
||||
&(vp->mesa_program->Base.Instructions[0]),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue