radv: promote VK_EXT_line_rasterization to KHR
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27262>
This commit is contained in:
committed by
Marge Bot
parent
701a37e863
commit
df3fbe3b33
@@ -487,7 +487,7 @@ lower_abi_instr(nir_builder *b, nir_intrinsic_instr *intrin, void *state)
|
||||
case nir_intrinsic_load_poly_line_smooth_enabled:
|
||||
if (s->gfx_state->dynamic_line_rast_mode) {
|
||||
nir_def *line_rast_mode = GET_SGPR_FIELD_NIR(s->args->ps_state, PS_STATE_LINE_RAST_MODE);
|
||||
replacement = nir_ieq_imm(b, line_rast_mode, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT);
|
||||
replacement = nir_ieq_imm(b, line_rast_mode, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR);
|
||||
} else {
|
||||
replacement = nir_imm_bool(b, s->gfx_state->rs.line_smooth_enabled);
|
||||
}
|
||||
|
||||
@@ -986,7 +986,7 @@ radv_get_rasterization_samples(struct radv_cmd_buffer *cmd_buffer)
|
||||
{
|
||||
const struct radv_dynamic_state *d = &cmd_buffer->state.dynamic;
|
||||
|
||||
if (d->vk.rs.line.mode == VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT &&
|
||||
if (d->vk.rs.line.mode == VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR &&
|
||||
radv_rast_prim_is_line(radv_get_rasterization_prim(cmd_buffer))) {
|
||||
/* From the Vulkan spec 1.3.221:
|
||||
*
|
||||
@@ -1000,7 +1000,7 @@ radv_get_rasterization_samples(struct radv_cmd_buffer *cmd_buffer)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (d->vk.rs.line.mode == VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT &&
|
||||
if (d->vk.rs.line.mode == VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR &&
|
||||
radv_rast_prim_is_line(radv_get_rasterization_prim(cmd_buffer))) {
|
||||
return RADV_NUM_SMOOTH_AA_SAMPLES;
|
||||
}
|
||||
@@ -2260,7 +2260,7 @@ radv_get_pa_su_sc_mode_cntl(const struct radv_cmd_buffer *cmd_buffer)
|
||||
*/
|
||||
pa_su_sc_mode_cntl |=
|
||||
S_028814_KEEP_TOGETHER_ENABLE(d->vk.rs.polygon_mode != V_028814_X_DRAW_TRIANGLES ||
|
||||
d->vk.rs.line.mode == VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT);
|
||||
d->vk.rs.line.mode == VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR);
|
||||
}
|
||||
|
||||
return pa_su_sc_mode_cntl;
|
||||
@@ -4353,7 +4353,7 @@ radv_emit_msaa_state(struct radv_cmd_buffer *cmd_buffer)
|
||||
S_028BE0_MAX_SAMPLE_DIST(max_sample_dist) | S_028BE0_MSAA_EXPOSED_SAMPLES(log_samples) |
|
||||
S_028BE0_COVERED_CENTROID_IS_CENTER(pdevice->rad_info.gfx_level >= GFX10_3);
|
||||
|
||||
if (d->vk.rs.line.mode == VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT)
|
||||
if (d->vk.rs.line.mode == VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR)
|
||||
db_eqaa |= S_028804_OVERRASTERIZATION_AMOUNT(log_samples);
|
||||
}
|
||||
|
||||
@@ -4390,7 +4390,7 @@ radv_emit_line_rasterization_mode(struct radv_cmd_buffer *cmd_buffer)
|
||||
*/
|
||||
radeon_set_context_reg(
|
||||
cmd_buffer->cs, R_028BDC_PA_SC_LINE_CNTL,
|
||||
S_028BDC_PERPENDICULAR_ENDCAP_ENA(d->vk.rs.line.mode == VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT));
|
||||
S_028BDC_PERPENDICULAR_ENDCAP_ENA(d->vk.rs.line.mode == VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -6922,7 +6922,7 @@ radv_CmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer, const VkSampleLocat
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
radv_CmdSetLineStippleEXT(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern)
|
||||
radv_CmdSetLineStippleKHR(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern)
|
||||
{
|
||||
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
struct radv_cmd_state *state = &cmd_buffer->state;
|
||||
@@ -7416,7 +7416,7 @@ radv_CmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer, VkSampleCountF
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
radv_CmdSetLineRasterizationModeEXT(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode)
|
||||
radv_CmdSetLineRasterizationModeEXT(VkCommandBuffer commandBuffer, VkLineRasterizationModeKHR lineRasterizationMode)
|
||||
{
|
||||
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
struct radv_cmd_state *state = &cmd_buffer->state;
|
||||
@@ -8932,7 +8932,7 @@ radv_emit_db_shader_control(struct radv_cmd_buffer *cmd_buffer)
|
||||
* Also apply the bug workaround for smoothing (overrasterization) on GFX6.
|
||||
*/
|
||||
if (uses_ds_feedback_loop ||
|
||||
(rad_info->gfx_level == GFX6 && d->vk.rs.line.mode == VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT))
|
||||
(rad_info->gfx_level == GFX6 && d->vk.rs.line.mode == VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR))
|
||||
db_shader_control = (db_shader_control & C_02880C_Z_ORDER) | S_02880C_Z_ORDER(V_02880C_LATE_Z);
|
||||
|
||||
if (ps && ps->info.ps.pops) {
|
||||
|
||||
@@ -829,8 +829,8 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr
|
||||
ps_epilogs = true;
|
||||
break;
|
||||
}
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: {
|
||||
const VkPhysicalDeviceLineRasterizationFeaturesEXT *features = (const void *)ext;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: {
|
||||
const VkPhysicalDeviceLineRasterizationFeaturesKHR *features = (const void *)ext;
|
||||
if (features->smoothLines)
|
||||
smooth_lines = true;
|
||||
break;
|
||||
|
||||
@@ -403,7 +403,7 @@ radv_dynamic_state_mask(VkDynamicState state)
|
||||
return RADV_DYNAMIC_DISCARD_RECTANGLE;
|
||||
case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:
|
||||
return RADV_DYNAMIC_SAMPLE_LOCATIONS;
|
||||
case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT:
|
||||
case VK_DYNAMIC_STATE_LINE_STIPPLE_KHR:
|
||||
return RADV_DYNAMIC_LINE_STIPPLE;
|
||||
case VK_DYNAMIC_STATE_CULL_MODE:
|
||||
return RADV_DYNAMIC_CULL_MODE;
|
||||
@@ -1955,7 +1955,7 @@ radv_generate_graphics_state_key(const struct radv_device *device, const struct
|
||||
key.dynamic_line_rast_mode = true;
|
||||
} else {
|
||||
key.rs.line_smooth_enabled =
|
||||
state->rs && state->rs->line.mode == VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT;
|
||||
state->rs && state->rs->line.mode == VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user