rsx: Propagate shader kill flag and refactor texture flags processing a bit
This commit is contained in:
@@ -2052,7 +2052,7 @@ namespace rsx
|
||||
|
||||
m_graphics_state.clear(rsx::pipeline_state::fragment_program_dirty);
|
||||
|
||||
current_fragment_program.ctrl = m_ctx->register_state->shader_control() & (CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS | CELL_GCM_SHADER_CONTROL_DEPTH_EXPORT);
|
||||
current_fragment_program.ctrl = m_ctx->register_state->shader_control() & (CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS | CELL_GCM_SHADER_CONTROL_DEPTH_EXPORT | RSX_SHADER_CONTROL_USES_KIL);
|
||||
current_fragment_program.texcoord_control_mask = m_ctx->register_state->texcoord_control_mask();
|
||||
current_fragment_program.two_sided_lighting = m_ctx->register_state->two_side_light_en();
|
||||
current_fragment_program.mrt_buffers_count = rsx::utility::get_mrt_buffers_count(m_ctx->register_state->surface_color_target());
|
||||
@@ -2116,8 +2116,11 @@ namespace rsx
|
||||
auto &tex = rsx::method_registers.fragment_textures[i];
|
||||
current_fp_texture_state.clear(i);
|
||||
|
||||
if (tex.enabled() && sampler_descriptors[i]->format_class != RSX_FORMAT_CLASS_UNDEFINED)
|
||||
if (!tex.enabled() || sampler_descriptors[i]->format_class == RSX_FORMAT_CLASS_UNDEFINED)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
std::memcpy(current_fragment_program.texture_params[i].scale, sampler_descriptors[i]->texcoord_xform.scale, 6 * sizeof(f32));
|
||||
current_fragment_program.texture_params[i].remap = tex.remap();
|
||||
|
||||
@@ -2305,7 +2308,6 @@ namespace rsx
|
||||
|
||||
current_fragment_program.texture_params[i].control = texture_control;
|
||||
}
|
||||
}
|
||||
|
||||
// Update texture configuration
|
||||
current_fragment_program.texture_state.import(current_fp_texture_state, current_fp_metadata.referenced_textures_mask);
|
||||
|
||||
Reference in New Issue
Block a user