diff --git a/src/amd/vulkan/vk_format.h b/src/amd/vulkan/vk_format.h index d5ce9ed5d90..47a80c8e128 100644 --- a/src/amd/vulkan/vk_format.h +++ b/src/amd/vulkan/vk_format.h @@ -119,15 +119,6 @@ vk_format_no_srgb(VkFormat format) } } -static inline unsigned -vk_format_get_component_bits(VkFormat format, enum util_format_colorspace colorspace, - unsigned component) -{ - return util_format_get_component_bits(vk_format_to_pipe_format(format), - colorspace, - component); -} - static inline VkFormat vk_to_non_srgb_format(VkFormat format) { diff --git a/src/freedreno/vulkan/meson.build b/src/freedreno/vulkan/meson.build index fdcfafa12e2..8fdf6d9c1a6 100644 --- a/src/freedreno/vulkan/meson.build +++ b/src/freedreno/vulkan/meson.build @@ -52,7 +52,6 @@ libtu_files = files( 'tu_util.c', 'tu_util.h', 'tu_perfetto.h', - 'vk_format.h', ) tu_deps = [] diff --git a/src/freedreno/vulkan/tu_shader.c b/src/freedreno/vulkan/tu_shader.c index 41c8a4f8dd5..ce6fd9d4dbc 100644 --- a/src/freedreno/vulkan/tu_shader.c +++ b/src/freedreno/vulkan/tu_shader.c @@ -503,6 +503,19 @@ lower_tex_ycbcr(const struct tu_pipeline_layout *layout, uint8_t bits = vk_format_get_component_bits(ycbcr_sampler->format, UTIL_FORMAT_COLORSPACE_RGB, PIPE_SWIZZLE_X); + + switch (ycbcr_sampler->format) { + case VK_FORMAT_G8B8G8R8_422_UNORM: + case VK_FORMAT_B8G8R8G8_422_UNORM: + case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: + case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM: + /* util_format_get_component_bits doesn't return what we want */ + bits = 8; + break; + default: + break; + } + uint32_t bpcs[3] = {bits, bits, bits}; /* TODO: use right bpc for each channel ? */ nir_ssa_def *result = nir_convert_ycbcr_to_rgb(builder, ycbcr_sampler->ycbcr_model, diff --git a/src/freedreno/vulkan/vk_format.h b/src/freedreno/vulkan/vk_format.h deleted file mode 100644 index c335a12ae9b..00000000000 --- a/src/freedreno/vulkan/vk_format.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright © 2016 Red Hat. - * Copyright © 2016 Bas Nieuwenhuizen - * - * Based on u_format.h which is: - * Copyright 2009-2010 VMware, Inc. - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -#ifndef VK_FORMAT_H -#define VK_FORMAT_H - -#include -#include -#include -#include - -#include - -static inline unsigned -vk_format_get_component_bits(VkFormat format, - enum util_format_colorspace colorspace, - unsigned component) -{ - switch (format) { - case VK_FORMAT_G8B8G8R8_422_UNORM: - case VK_FORMAT_B8G8R8G8_422_UNORM: - case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: - case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM: - /* util_format_get_component_bits doesn't return what we want */ - return 8; - default: - break; - } - - return util_format_get_component_bits(vk_format_to_pipe_format(format), - colorspace, component); -} - -#endif /* VK_FORMAT_H */ diff --git a/src/imagination/vulkan/vk_format.h b/src/imagination/vulkan/vk_format.h index 4d4fbee5d0c..2153460c152 100644 --- a/src/imagination/vulkan/vk_format.h +++ b/src/imagination/vulkan/vk_format.h @@ -75,16 +75,6 @@ static inline bool vk_format_has_32bit_component(VkFormat vk_format) return false; } -static inline uint -vk_format_get_component_bits(VkFormat vk_format, - enum util_format_colorspace colorspace, - uint32_t component) -{ - return util_format_get_component_bits(vk_format_to_pipe_format(vk_format), - colorspace, - component); -} - static inline bool vk_format_is_normalized(VkFormat vk_format) { const struct util_format_description *desc = diff --git a/src/vulkan/util/vk_format.h b/src/vulkan/util/vk_format.h index a822aa5fc5a..df5c90f493c 100644 --- a/src/vulkan/util/vk_format.h +++ b/src/vulkan/util/vk_format.h @@ -165,6 +165,15 @@ vk_format_description(VkFormat format) return util_format_description(vk_format_to_pipe_format(format)); } +static inline unsigned +vk_format_get_component_bits(VkFormat format, enum util_format_colorspace colorspace, + unsigned component) +{ + return util_format_get_component_bits(vk_format_to_pipe_format(format), + colorspace, + component); +} + static inline unsigned vk_format_get_nr_components(VkFormat format) {