diff --git a/src/gallium/drivers/r300/ci/r300-r480-fails.txt b/src/gallium/drivers/r300/ci/r300-r480-fails.txt index 097ec698524..b08ff8104e2 100644 --- a/src/gallium/drivers/r300/ci/r300-r480-fails.txt +++ b/src/gallium/drivers/r300/ci/r300-r480-fails.txt @@ -616,11 +616,8 @@ dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.unconditional_conti dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.unconditional_continue_vertex,Fail dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.vector_counter_fragment,Fail dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.vector_counter_vertex,Fail -dEQP-GLES2.functional.shaders.random.all_features.fragment.1,Fail dEQP-GLES2.functional.shaders.random.all_features.fragment.5,Fail dEQP-GLES2.functional.shaders.random.all_features.fragment.6,Fail -dEQP-GLES2.functional.shaders.random.texture.fragment.141,Fail -dEQP-GLES2.functional.shaders.random.texture.fragment.42,Fail dEQP-GLES2.functional.shaders.return.return_in_dynamic_loop_dynamic_fragment,Fail dEQP-GLES2.functional.shaders.return.return_in_dynamic_loop_dynamic_vertex,Fail dEQP-GLES2.functional.shaders.return.return_in_dynamic_loop_never_fragment,Fail diff --git a/src/gallium/drivers/r300/r300_fs.c b/src/gallium/drivers/r300/r300_fs.c index 13abe6fe031..94a5505e3c6 100644 --- a/src/gallium/drivers/r300/r300_fs.c +++ b/src/gallium/drivers/r300/r300_fs.c @@ -463,7 +463,6 @@ static void r300_translate_fragment_shader( /* Translate TGSI to our internal representation */ ttr.compiler = &compiler.Base; ttr.info = &shader->info; - ttr.use_half_swizzles = TRUE; r300_tgsi_to_rc(&ttr, tokens); diff --git a/src/gallium/drivers/r300/r300_tgsi_to_rc.c b/src/gallium/drivers/r300/r300_tgsi_to_rc.c index b1e2dd1627e..3068f78125e 100644 --- a/src/gallium/drivers/r300/r300_tgsi_to_rc.c +++ b/src/gallium/drivers/r300/r300_tgsi_to_rc.c @@ -175,8 +175,6 @@ static void transform_srcreg( struct rc_src_register * dst, struct tgsi_full_src_register * src) { - unsigned i, j; - dst->File = translate_register_file(src->Register.File); dst->Index = translate_register_index(ttr, src->Register.File, src->Register.Index); dst->RelAddr = src->Register.Indirect; @@ -186,21 +184,6 @@ static void transform_srcreg( dst->Swizzle |= tgsi_util_get_full_src_register_swizzle(src, 3) << 9; dst->Abs = src->Register.Absolute; dst->Negate = src->Register.Negate ? RC_MASK_XYZW : 0; - - if (src->Register.File == TGSI_FILE_IMMEDIATE) { - for (i = 0; i < ttr->imms_to_swizzle_count; i++) { - if (ttr->imms_to_swizzle[i].index == src->Register.Index) { - dst->File = RC_FILE_TEMPORARY; - dst->Index = 0; - dst->Swizzle = 0; - for (j = 0; j < 4; j++) { - dst->Swizzle |= GET_SWZ(ttr->imms_to_swizzle[i].swizzle, - tgsi_util_get_full_src_register_swizzle(src, j)) << (j * 3); - } - break; - } - } - } } static void transform_texture(struct rc_instruction * dst, struct tgsi_instruction_texture src, @@ -301,34 +284,12 @@ static void handle_immediate(struct tgsi_to_rc * ttr, unsigned index) { struct rc_constant constant; - unsigned swizzle = 0; - boolean can_swizzle = TRUE; - unsigned i; - for (i = 0; i < 4; i++) { - if (imm->u[i].Float == 0.0f) { - swizzle |= RC_SWIZZLE_ZERO << (i * 3); - } else if (imm->u[i].Float == 0.5f && ttr->use_half_swizzles) { - swizzle |= RC_SWIZZLE_HALF << (i * 3); - } else if (imm->u[i].Float == 1.0f) { - swizzle |= RC_SWIZZLE_ONE << (i * 3); - } else { - can_swizzle = FALSE; - break; - } - } - - if (can_swizzle) { - ttr->imms_to_swizzle[ttr->imms_to_swizzle_count].index = index; - ttr->imms_to_swizzle[ttr->imms_to_swizzle_count].swizzle = swizzle; - ttr->imms_to_swizzle_count++; - } else { - constant.Type = RC_CONSTANT_IMMEDIATE; - constant.Size = 4; - for(i = 0; i < 4; ++i) - constant.u.Immediate[i] = imm->u[i].Float; - rc_constants_add(&ttr->compiler->Program.Constants, &constant); - } + constant.Type = RC_CONSTANT_IMMEDIATE; + constant.Size = 4; + for (unsigned i = 0; i < 4; ++i) + constant.u.Immediate[i] = imm->u[i].Float; + rc_constants_add(&ttr->compiler->Program.Constants, &constant); } void r300_tgsi_to_rc(struct tgsi_to_rc * ttr, @@ -355,9 +316,6 @@ void r300_tgsi_to_rc(struct tgsi_to_rc * ttr, ttr->immediate_offset = ttr->compiler->Program.Constants.Count; - ttr->imms_to_swizzle = malloc(ttr->info->immediate_count * sizeof(struct swizzled_imms)); - ttr->imms_to_swizzle_count = 0; - tgsi_parse_init(&parser, tokens); while (!tgsi_parse_end_of_tokens(&parser)) { @@ -383,7 +341,5 @@ void r300_tgsi_to_rc(struct tgsi_to_rc * ttr, tgsi_parse_free(&parser); - free(ttr->imms_to_swizzle); - rc_calculate_inputs_outputs(ttr->compiler); } diff --git a/src/gallium/drivers/r300/r300_tgsi_to_rc.h b/src/gallium/drivers/r300/r300_tgsi_to_rc.h index 21f35e15ca2..551b4de18d2 100644 --- a/src/gallium/drivers/r300/r300_tgsi_to_rc.h +++ b/src/gallium/drivers/r300/r300_tgsi_to_rc.h @@ -41,12 +41,6 @@ struct tgsi_to_rc { const struct tgsi_shader_info * info; int immediate_offset; - struct swizzled_imms * imms_to_swizzle; - unsigned imms_to_swizzle_count; - - /* Vertex shaders have no half swizzles, and no way to handle them, so - * until rc grows proper support, indicate if they're safe to use. */ - boolean use_half_swizzles; /* If an error occurred. */ boolean error; diff --git a/src/gallium/drivers/r300/r300_vs.c b/src/gallium/drivers/r300/r300_vs.c index 76413b0a040..dfa26de1c84 100644 --- a/src/gallium/drivers/r300/r300_vs.c +++ b/src/gallium/drivers/r300/r300_vs.c @@ -214,7 +214,6 @@ void r300_translate_vertex_shader(struct r300_context *r300, /* Translate TGSI to our internal representation */ ttr.compiler = &compiler.Base; ttr.info = &vs->info; - ttr.use_half_swizzles = FALSE; r300_tgsi_to_rc(&ttr, shader->state.tokens);