diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/imagination/vulkan/pvr_common.h | 10 | ||||
-rw-r--r-- | src/imagination/vulkan/pvr_formats.c | 14 | ||||
-rw-r--r-- | src/imagination/vulkan/pvr_formats.h | 9 | ||||
-rw-r--r-- | src/imagination/vulkan/pvr_job_transfer.c | 60 | ||||
-rw-r--r-- | src/imagination/vulkan/pvr_private.h | 40 | ||||
-rw-r--r-- | src/imagination/vulkan/pvr_transfer_frag_store.c | 3 | ||||
-rw-r--r-- | src/imagination/vulkan/usc/pvr_uscgen.h | 3 | ||||
-rw-r--r-- | src/imagination/vulkan/usc/pvr_uscgen_tq.c | 4 |
8 files changed, 11 insertions, 132 deletions
diff --git a/src/imagination/vulkan/pvr_common.h b/src/imagination/vulkan/pvr_common.h index 13395386b01..3d135a68cef 100644 --- a/src/imagination/vulkan/pvr_common.h +++ b/src/imagination/vulkan/pvr_common.h @@ -169,16 +169,6 @@ enum pvr_resolve_op { PVR_RESOLVE_SAMPLE7, }; -enum pvr_alpha_type { - PVR_ALPHA_NONE, - PVR_ALPHA_SOURCE, - PVR_ALPHA_PREMUL_SOURCE, - PVR_ALPHA_GLOBAL, - PVR_ALPHA_PREMUL_SOURCE_WITH_GLOBAL, - PVR_ALPHA_CUSTOM, - PVR_ALPHA_AATEXT, -}; - enum pvr_event_state { PVR_EVENT_STATE_SET_BY_HOST, PVR_EVENT_STATE_RESET_BY_HOST, diff --git a/src/imagination/vulkan/pvr_formats.c b/src/imagination/vulkan/pvr_formats.c index 37efc6d9ae6..ac2f02c6796 100644 --- a/src/imagination/vulkan/pvr_formats.c +++ b/src/imagination/vulkan/pvr_formats.c @@ -1038,20 +1038,8 @@ bool pvr_format_is_pbe_downscalable(VkFormat vk_format) } } -uint32_t pvr_pbe_pixel_num_loads(enum pvr_transfer_pbe_pixel_src pbe_format, - uint32_t alpha_type) +uint32_t pvr_pbe_pixel_num_loads(enum pvr_transfer_pbe_pixel_src pbe_format) { - switch (alpha_type) { - default: - case PVR_ALPHA_NONE: - break; - case PVR_ALPHA_SOURCE: - case PVR_ALPHA_PREMUL_SOURCE: - case PVR_ALPHA_PREMUL_SOURCE_WITH_GLOBAL: - case PVR_ALPHA_GLOBAL: - return 2U; - } - switch (pbe_format) { case PVR_TRANSFER_PBE_PIXEL_SRC_UU8888: case PVR_TRANSFER_PBE_PIXEL_SRC_US8888: diff --git a/src/imagination/vulkan/pvr_formats.h b/src/imagination/vulkan/pvr_formats.h index bdd1a4cf906..b0be90b2c29 100644 --- a/src/imagination/vulkan/pvr_formats.h +++ b/src/imagination/vulkan/pvr_formats.h @@ -220,13 +220,6 @@ void pvr_get_hw_clear_color(VkFormat vk_format, VkClearColorValue value, uint32_t packed_out[static const 4]); -/* TODO: alpha_type is of 'enum pvr_int_pbe_pixel_num_loads' type. See if we can - * move that in here. It's currently in pvr_common.h and it doesn't seem - * appropriate including that in here. Also moving the definition in here would - * make pvr_common.h include this which would mean that the compiler would be - * pulling in vulkan specific format stuff. - */ -uint32_t pvr_pbe_pixel_num_loads(enum pvr_transfer_pbe_pixel_src pbe_format, - uint32_t alpha_type); +uint32_t pvr_pbe_pixel_num_loads(enum pvr_transfer_pbe_pixel_src pbe_format); #endif /* PVR_FORMATS_H */ diff --git a/src/imagination/vulkan/pvr_job_transfer.c b/src/imagination/vulkan/pvr_job_transfer.c index 7f435ac7935..9f38be154b2 100644 --- a/src/imagination/vulkan/pvr_job_transfer.c +++ b/src/imagination/vulkan/pvr_job_transfer.c @@ -1459,15 +1459,14 @@ static void pvr_uv_space(const struct pvr_device_info *dev_info, } static uint32_t pvr_int_pbe_pixel_num_sampler_and_image_states( - enum pvr_transfer_pbe_pixel_src pbe_format, - uint32_t alpha_type) + enum pvr_transfer_pbe_pixel_src pbe_format) { switch (pbe_format) { case PVR_TRANSFER_PBE_PIXEL_SRC_Y_UV_INTERLEAVED: case PVR_TRANSFER_PBE_PIXEL_SRC_Y_U_V: return 1U; default: - return pvr_pbe_pixel_num_loads(pbe_format, alpha_type); + return pvr_pbe_pixel_num_loads(pbe_format); } } @@ -1663,9 +1662,7 @@ pvr_sampler_image_state(struct pvr_transfer_ctx *ctx, for (uint32_t source = 0; source < transfer_cmd->source_count; source++) { struct pvr_tq_layer_properties *layer = &state->shader_props.layer_props; - uint32_t max_load = - pvr_pbe_pixel_num_loads(layer->pbe_format, - state->shader_props.alpha_type); + uint32_t max_load = pvr_pbe_pixel_num_loads(layer->pbe_format); for (uint32_t load = 0U; load < max_load; load++) { const struct pvr_transfer_cmd_surface *surface; @@ -1685,11 +1682,7 @@ pvr_sampler_image_state(struct pvr_transfer_ctx *ctx, case PVR_TRANSFER_PBE_PIXEL_SRC_F16_U8: if (load > 0U) { surface = &transfer_cmd->dst; - - if (state->shader_props.alpha_type != PVR_ALPHA_NONE) - filter = PVR_FILTER_POINT; - else - filter = transfer_cmd->sources[source].filter; + filter = transfer_cmd->sources[source].filter; } else { surface = &transfer_cmd->sources[source].surface; filter = state->filter[source]; @@ -1709,8 +1702,7 @@ pvr_sampler_image_state(struct pvr_transfer_ctx *ctx, } if (load < pvr_int_pbe_pixel_num_sampler_and_image_states( - layer->pbe_format, - state->shader_props.alpha_type)) { + layer->pbe_format)) { const struct pvr_device_info *dev_info = &transfer_cmd->cmd_buffer->device->pdevice->dev_info; @@ -1758,17 +1750,6 @@ static inline uint32_t pvr_dynamic_const_reg_advance( return offset + state->dynamic_const_reg_ptr++; } -static inline void -pvr_dma_global_alpha(const struct pvr_transfer_alpha *alpha, - struct pvr_transfer_3d_state *state, - const struct pvr_tq_frag_sh_reg_layout *sh_reg_layout, - uint32_t *mem_ptr) -{ - float global = (float)alpha->global / 255.0f; - - mem_ptr[pvr_dynamic_const_reg_advance(sh_reg_layout, state)] = fui(global); -} - /** Scales coefficients for sampling. (non normalized). */ static inline void pvr_dma_texture_floats(const struct pvr_transfer_cmd *transfer_cmd, @@ -2779,15 +2760,6 @@ static VkResult pvr_3d_copy_blit_core(struct pvr_transfer_ctx *ctx, state->shader_props.pick_component = pvr_pick_component_needed(&state->custom_mapping); - state->shader_props.alpha_type = transfer_cmd->blit.alpha.type; - - if (state->shader_props.alpha_type != PVR_ALPHA_NONE && - (state->shader_props.layer_props.pbe_format != - PVR_TRANSFER_PBE_PIXEL_SRC_F16F16 && - state->shader_props.layer_props.pbe_format != - PVR_TRANSFER_PBE_PIXEL_SRC_F16_U8)) { - return vk_error(device, VK_ERROR_FORMAT_NOT_SUPPORTED); - } if (state->filter[0] == PVR_FILTER_LINEAR && pvr_requires_usc_linear_filter( @@ -2849,15 +2821,6 @@ static VkResult pvr_3d_copy_blit_core(struct pvr_transfer_ctx *ctx, if (result != VK_SUCCESS) return result; - if (state->shader_props.alpha_type == PVR_ALPHA_GLOBAL || - state->shader_props.alpha_type == - PVR_ALPHA_PREMUL_SOURCE_WITH_GLOBAL) { - pvr_dma_global_alpha(&transfer_cmd->blit.alpha, - state, - sh_reg_layout, - dma_space); - } - pvr_dma_texture_floats(transfer_cmd, state, sh_reg_layout, dma_space); if (transfer_cmd->sources[0].surface.mem_layout == @@ -4515,8 +4478,6 @@ static VkResult pvr_3d_clip_blit(struct pvr_transfer_ctx *ctx, ~(PVR_TRANSFER_CMD_FLAGS_FAST2D | PVR_TRANSFER_CMD_FLAGS_FILL | PVR_TRANSFER_CMD_FLAGS_DSMERGE | PVR_TRANSFER_CMD_FLAGS_PICKD); - memset(&bg_cmd.blit, 0U, sizeof(bg_cmd.blit)); - bg_cmd.source_count = state->custom_mapping.pass_count > 0U ? 0 : 1; if (bg_cmd.source_count > 0) { struct pvr_transfer_cmd_source *src = &bg_cmd.sources[0]; @@ -5474,12 +5435,8 @@ static VkResult pvr_reroute_to_clip(struct pvr_transfer_ctx *ctx, uint32_t pass_idx, bool *finished_out) { - const struct pvr_transfer_blit *blit = &transfer_cmd->blit; struct pvr_transfer_cmd clip_transfer_cmd; - if (blit->alpha.type != PVR_ALPHA_NONE) - return vk_error(ctx->device, VK_ERROR_FORMAT_NOT_SUPPORTED); - clip_transfer_cmd = *transfer_cmd; clip_transfer_cmd.flags |= PVR_TRANSFER_CMD_FLAGS_FAST2D; @@ -5506,7 +5463,6 @@ static VkResult pvr_3d_copy_blit(struct pvr_transfer_ctx *ctx, const struct pvr_device_info *const dev_info = &ctx->device->pdevice->dev_info; - const struct pvr_transfer_blit *blit = &transfer_cmd->blit; struct pvr_transfer_3d_state *state = &prep_data->state; struct pvr_transfer_cmd *active_cmd = transfer_cmd; struct pvr_transfer_cmd int_cmd; @@ -5528,8 +5484,7 @@ static VkResult pvr_3d_copy_blit(struct pvr_transfer_ctx *ctx, if (src->surface.vk_format == transfer_cmd->dst.vk_format && state->filter[0] == PVR_FILTER_POINT && src->surface.sample_count <= transfer_cmd->dst.sample_count && - (transfer_cmd->flags & PVR_TRANSFER_CMD_FLAGS_DSMERGE) == 0U && - transfer_cmd->blit.alpha.type == PVR_ALPHA_NONE) { + (transfer_cmd->flags & PVR_TRANSFER_CMD_FLAGS_DSMERGE) == 0U) { uint32_t bpp; int_cmd = *transfer_cmd; @@ -5583,9 +5538,6 @@ static VkResult pvr_3d_copy_blit(struct pvr_transfer_ctx *ctx, if (state->custom_mapping.pass_count > 0U) { struct pvr_transfer_pass *pass = &state->custom_mapping.passes[pass_idx]; - if (blit->alpha.type != PVR_ALPHA_NONE) - return vk_error(ctx->device, VK_ERROR_FORMAT_NOT_SUPPORTED); - if (active_cmd != &int_cmd) { int_cmd = *active_cmd; active_cmd = &int_cmd; diff --git a/src/imagination/vulkan/pvr_private.h b/src/imagination/vulkan/pvr_private.h index 36e9ddf02c5..cf281f6e825 100644 --- a/src/imagination/vulkan/pvr_private.h +++ b/src/imagination/vulkan/pvr_private.h @@ -398,44 +398,6 @@ struct pvr_rect_mapping { bool flip_y; }; -/* Describes an Alpha-Transparency configuration - for Transfer Queue Use. */ -struct pvr_transfer_alpha { - enum pvr_alpha_type type; - /* Global alpha value. */ - uint32_t global; - - /* Custom blend op for rgb. */ - uint32_t custom_rgb; - /* Custom blend op for alpha. */ - uint32_t custom_alpha; - /* Custom global alpha value for alpha output. */ - uint32_t global2; - /* Custom multiplication of global and source alpha. */ - bool glob_src_mul; - /* Custom zero source alpha transparency stage. */ - bool zero_src_a_trans; - - /* Enable argb1555 alpha components. */ - bool alpha_components; - /* Source alpha value when argb1555 alpha bit is 0. */ - uint32_t component0; - /* Source alpha value when argb1555 alpha bit is 1. */ - uint32_t component1; -}; - -struct pvr_transfer_blit { - /* 16 bit rop4 (ie two 8 bit rop3's). */ - uint32_t rop_code; - - /* Color key mask. */ - uint32_t color_mask; - - /* Alpha blend. */ - struct pvr_transfer_alpha alpha; - - VkOffset2D offset; -}; - struct pvr_transfer_cmd_source { struct pvr_transfer_cmd_surface surface; @@ -473,8 +435,6 @@ struct pvr_transfer_cmd { VkRect2D scissor; - struct pvr_transfer_blit blit; - /* Pointer to cmd buffer this transfer cmd belongs to. This is mainly used * to link buffer objects allocated during job submission into * cmd_buffer::bo_list head. diff --git a/src/imagination/vulkan/pvr_transfer_frag_store.c b/src/imagination/vulkan/pvr_transfer_frag_store.c index 758f7849011..1a0d29685b1 100644 --- a/src/imagination/vulkan/pvr_transfer_frag_store.c +++ b/src/imagination/vulkan/pvr_transfer_frag_store.c @@ -161,7 +161,8 @@ static uint32_t pvr_transfer_frag_shader_key( hash |= 1; shift_hash(hash, 3U); - hash |= shader_props->alpha_type; + /* alpha type none */ + hash |= 0; #undef shift_hash diff --git a/src/imagination/vulkan/usc/pvr_uscgen.h b/src/imagination/vulkan/usc/pvr_uscgen.h index 89106301717..103df838e2e 100644 --- a/src/imagination/vulkan/usc/pvr_uscgen.h +++ b/src/imagination/vulkan/usc/pvr_uscgen.h @@ -49,9 +49,6 @@ struct pvr_tq_shader_properties { /* Sample specific channel of pixel. */ bool pick_component; - /* Alpha type from transfer API. */ - uint32_t alpha_type; - struct pvr_tq_layer_properties { /* Controls whether we need to send the sample count to the TPU. */ bool msaa; diff --git a/src/imagination/vulkan/usc/pvr_uscgen_tq.c b/src/imagination/vulkan/usc/pvr_uscgen_tq.c index 961310441bc..fc6f031994f 100644 --- a/src/imagination/vulkan/usc/pvr_uscgen_tq.c +++ b/src/imagination/vulkan/usc/pvr_uscgen_tq.c @@ -63,7 +63,6 @@ void pvr_uscgen_tq_frag(const struct pvr_tq_shader_properties *shader_props, /* TODO: Unrestrict. */ assert(shader_props->full_rate == false); assert(shader_props->pick_component == false); - assert(shader_props->alpha_type == 0); const struct pvr_tq_layer_properties *layer_props = &shader_props->layer_props; @@ -80,8 +79,7 @@ void pvr_uscgen_tq_frag(const struct pvr_tq_shader_properties *shader_props, assert(layer_props->byte_unwind == 0); assert(layer_props->linear == false); - loads = pvr_pbe_pixel_num_loads(layer_props->pbe_format, - shader_props->alpha_type); + loads = pvr_pbe_pixel_num_loads(layer_props->pbe_format); for (uint32_t load = 0; load < loads; ++load) { if (shader_props->iterated) { /* TODO: feed{back,forward} the coeff index to/from shader_info. */ |