Skip ARL while we dont implement it. Fix broken nv vps but do it with software for now.

This commit is contained in:
Aapo Tahkola 2006-02-16 19:50:40 +00:00
parent 555b5fac4f
commit 8da9f448f4
1 changed files with 17 additions and 9 deletions

View File

@ -107,19 +107,21 @@ int r300VertexProgUpdateParams(GLcontext *ctx, struct r300_vertex_program *vp, f
float *dst_o=dst;
struct program_parameter_list *paramList;
_mesa_load_state_parameters(ctx, mesa_vp->Base.Parameters);
if (mesa_vp->Base.Parameters == NULL) {
static int once=0;
if (mesa_vp->IsNVProgram) {
_mesa_init_vp_per_primitive_registers(ctx);
WARN_ONCE("mesa_vp->Base.Parameters NULL\n");
if (once == 0) {
_mesa_print_program(&vp->mesa_program.Base);
once++;
for (pi=0; pi < MAX_NV_VERTEX_PROGRAM_PARAMS; pi++) {
*dst++=ctx->VertexProgram.Parameters[pi][0];
*dst++=ctx->VertexProgram.Parameters[pi][1];
*dst++=ctx->VertexProgram.Parameters[pi][2];
*dst++=ctx->VertexProgram.Parameters[pi][3];
}
return 0;
return dst - dst_o;
}
assert(mesa_vp->Base.Parameters);
_mesa_load_state_parameters(ctx, mesa_vp->Base.Parameters);
if(mesa_vp->Base.Parameters->NumParameters * 4 > VSF_MAX_FRAGMENT_LENGTH){
fprintf(stderr, "%s:Params exhausted\n", __FUNCTION__);
exit(-1);
@ -867,6 +869,9 @@ void translate_vertex_shader(struct r300_vertex_program *vp)
goto next;
case OPCODE_ARL:
WARN_ONCE("ARL not implemented yet!\n");
goto next;
case OPCODE_RCC:
fprintf(stderr, "Dont know how to handle op %d yet\n", vpi->Opcode);
exit(-1);
@ -949,5 +954,8 @@ void translate_vertex_shader(struct r300_vertex_program *vp)
vp->translated=GL_TRUE;
vp->native = GL_TRUE;
}
if (mesa_vp->IsNVProgram)
vp->native = GL_FALSE;
}