vk/0.210.0: Rework sampler filtering and mode enums

This commit is contained in:
Jason Ekstrand 2015-11-30 16:21:38 -08:00
parent 2e10ca5748
commit e8f2294cd2
5 changed files with 66 additions and 66 deletions

View file

@ -647,36 +647,36 @@ typedef enum VkDynamicState {
VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
} VkDynamicState;
typedef enum {
VK_TEX_FILTER_NEAREST = 0,
VK_TEX_FILTER_LINEAR = 1,
VK_TEX_FILTER_BEGIN_RANGE = VK_TEX_FILTER_NEAREST,
VK_TEX_FILTER_END_RANGE = VK_TEX_FILTER_LINEAR,
VK_TEX_FILTER_NUM = (VK_TEX_FILTER_LINEAR - VK_TEX_FILTER_NEAREST + 1),
VK_TEX_FILTER_MAX_ENUM = 0x7FFFFFFF
} VkTexFilter;
typedef enum VkFilter {
VK_FILTER_NEAREST = 0,
VK_FILTER_LINEAR = 1,
VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
VK_FILTER_MAX_ENUM = 0x7FFFFFFF
} VkFilter;
typedef enum {
VK_TEX_MIPMAP_MODE_BASE = 0,
VK_TEX_MIPMAP_MODE_NEAREST = 1,
VK_TEX_MIPMAP_MODE_LINEAR = 2,
VK_TEX_MIPMAP_MODE_BEGIN_RANGE = VK_TEX_MIPMAP_MODE_BASE,
VK_TEX_MIPMAP_MODE_END_RANGE = VK_TEX_MIPMAP_MODE_LINEAR,
VK_TEX_MIPMAP_MODE_NUM = (VK_TEX_MIPMAP_MODE_LINEAR - VK_TEX_MIPMAP_MODE_BASE + 1),
VK_TEX_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
} VkTexMipmapMode;
typedef enum VkSamplerMipmapMode {
VK_SAMPLER_MIPMAP_MODE_BASE = 0,
VK_SAMPLER_MIPMAP_MODE_NEAREST = 1,
VK_SAMPLER_MIPMAP_MODE_LINEAR = 2,
VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_BASE,
VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_BASE + 1),
VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
} VkSamplerMipmapMode;
typedef enum {
VK_TEX_ADDRESS_MODE_WRAP = 0,
VK_TEX_ADDRESS_MODE_MIRROR = 1,
VK_TEX_ADDRESS_MODE_CLAMP = 2,
VK_TEX_ADDRESS_MODE_MIRROR_ONCE = 3,
VK_TEX_ADDRESS_MODE_CLAMP_BORDER = 4,
VK_TEX_ADDRESS_BEGIN_RANGE = VK_TEX_ADDRESS_MODE_WRAP,
VK_TEX_ADDRESS_END_RANGE = VK_TEX_ADDRESS_MODE_CLAMP_BORDER,
VK_TEX_ADDRESS_NUM = (VK_TEX_ADDRESS_MODE_CLAMP_BORDER - VK_TEX_ADDRESS_MODE_WRAP + 1),
VK_TEX_ADDRESS_MAX_ENUM = 0x7FFFFFFF
} VkTexAddressMode;
typedef enum VkSamplerAddressMode {
VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
} VkSamplerAddressMode;
typedef enum VkBorderColor {
VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
@ -1759,12 +1759,12 @@ typedef struct {
typedef struct {
VkStructureType sType;
const void* pNext;
VkTexFilter magFilter;
VkTexFilter minFilter;
VkTexMipmapMode mipMode;
VkTexAddressMode addressModeU;
VkTexAddressMode addressModeV;
VkTexAddressMode addressModeW;
VkFilter magFilter;
VkFilter minFilter;
VkSamplerMipmapMode mipmapMode;
VkSamplerAddressMode addressModeU;
VkSamplerAddressMode addressModeV;
VkSamplerAddressMode addressModeW;
float mipLodBias;
float maxAnisotropy;
VkBool32 compareEnable;
@ -2192,7 +2192,7 @@ typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint3
typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkTexFilter filter);
typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData);
@ -2843,7 +2843,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
VkImageLayout dstImageLayout,
uint32_t regionCount,
const VkImageBlit* pRegions,
VkTexFilter filter);
VkFilter filter);
VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
VkCommandBuffer commandBuffer,

View file

@ -126,7 +126,7 @@ anv_dump_image_to_ppm(struct anv_device *device,
extent.height,
1
},
}, VK_TEX_FILTER_NEAREST);
}, VK_FILTER_NEAREST);
ANV_CALL(CmdPipelineBarrier)(cmd,
VK_PIPELINE_STAGE_TRANSFER_BIT,

View file

@ -449,7 +449,7 @@ meta_emit_blit(struct anv_cmd_buffer *cmd_buffer,
struct anv_image_view *dest_iview,
VkOffset3D dest_offset,
VkExtent3D dest_extent,
VkTexFilter blit_filter)
VkFilter blit_filter)
{
struct anv_device *device = cmd_buffer->device;
VkDescriptorPool dummy_desc_pool = (VkDescriptorPool)1;
@ -734,7 +734,7 @@ do_buffer_copy(struct anv_cmd_buffer *cmd_buffer,
&dest_iview,
(VkOffset3D) { 0, 0, 0 },
(VkExtent3D) { width, height, 1 },
VK_TEX_FILTER_NEAREST);
VK_FILTER_NEAREST);
anv_DestroyImage(vk_device, src_image);
anv_DestroyImage(vk_device, dest_image);
@ -907,7 +907,7 @@ void anv_CmdCopyImage(
dest_image, &dest_iview,
dest_offset,
pRegions[r].extent,
VK_TEX_FILTER_NEAREST);
VK_FILTER_NEAREST);
}
}
@ -922,7 +922,7 @@ void anv_CmdBlitImage(
VkImageLayout destImageLayout,
uint32_t regionCount,
const VkImageBlit* pRegions,
VkTexFilter filter)
VkFilter filter)
{
ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer);
@ -934,7 +934,7 @@ void anv_CmdBlitImage(
struct anv_meta_saved_state saved_state;
anv_finishme("respect VkTexFilter");
anv_finishme("respect VkFilter");
meta_prepare_blit(cmd_buffer, &saved_state);
@ -1141,7 +1141,7 @@ void anv_CmdCopyBufferToImage(
&dest_iview,
dest_offset,
pRegions[r].imageExtent,
VK_TEX_FILTER_NEAREST);
VK_FILTER_NEAREST);
/* Once we've done the blit, all of the actual information about
* the image is embedded in the command buffer so we can just
@ -1244,7 +1244,7 @@ void anv_CmdCopyImageToBuffer(
&dest_iview,
(VkOffset3D) { 0, 0, 0 },
pRegions[r].imageExtent,
VK_TEX_FILTER_NEAREST);
VK_FILTER_NEAREST);
/* Once we've done the blit, all of the actual information about
* the image is embedded in the command buffer so we can just

View file

@ -64,22 +64,22 @@ genX(fill_buffer_surface_state)(void *state, const struct anv_format *format,
}
static const uint32_t vk_to_gen_tex_filter[] = {
[VK_TEX_FILTER_NEAREST] = MAPFILTER_NEAREST,
[VK_TEX_FILTER_LINEAR] = MAPFILTER_LINEAR
[VK_FILTER_NEAREST] = MAPFILTER_NEAREST,
[VK_FILTER_LINEAR] = MAPFILTER_LINEAR
};
static const uint32_t vk_to_gen_mipmap_mode[] = {
[VK_TEX_MIPMAP_MODE_BASE] = MIPFILTER_NONE,
[VK_TEX_MIPMAP_MODE_NEAREST] = MIPFILTER_NEAREST,
[VK_TEX_MIPMAP_MODE_LINEAR] = MIPFILTER_LINEAR
[VK_SAMPLER_MIPMAP_MODE_BASE] = MIPFILTER_NONE,
[VK_SAMPLER_MIPMAP_MODE_NEAREST] = MIPFILTER_NEAREST,
[VK_SAMPLER_MIPMAP_MODE_LINEAR] = MIPFILTER_LINEAR
};
static const uint32_t vk_to_gen_tex_address[] = {
[VK_TEX_ADDRESS_MODE_WRAP] = TCM_WRAP,
[VK_TEX_ADDRESS_MODE_MIRROR] = TCM_MIRROR,
[VK_TEX_ADDRESS_MODE_CLAMP] = TCM_CLAMP,
[VK_TEX_ADDRESS_MODE_MIRROR_ONCE] = TCM_MIRROR_ONCE,
[VK_TEX_ADDRESS_MODE_CLAMP_BORDER] = TCM_CLAMP_BORDER,
[VK_SAMPLER_ADDRESS_MODE_REPEAT] = TCM_WRAP,
[VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT] = TCM_MIRROR,
[VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE] = TCM_CLAMP,
[VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE] = TCM_MIRROR_ONCE,
[VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER] = TCM_CLAMP_BORDER,
};
static const uint32_t vk_to_gen_compare_op[] = {
@ -134,7 +134,7 @@ VkResult genX(CreateSampler)(
.SamplerDisable = false,
.TextureBorderColorMode = DX10OGL,
.BaseMipLevel = 0.0,
.MipModeFilter = vk_to_gen_mipmap_mode[pCreateInfo->mipMode],
.MipModeFilter = vk_to_gen_mipmap_mode[pCreateInfo->mipmapMode],
.MagModeFilter = mag_filter,
.MinModeFilter = min_filter,
.TextureLODBias = pCreateInfo->mipLodBias * 256,

View file

@ -283,22 +283,22 @@ VkResult genX(CreateSampler)(
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
static const uint32_t vk_to_gen_tex_filter[] = {
[VK_TEX_FILTER_NEAREST] = MAPFILTER_NEAREST,
[VK_TEX_FILTER_LINEAR] = MAPFILTER_LINEAR
[VK_FILTER_NEAREST] = MAPFILTER_NEAREST,
[VK_FILTER_LINEAR] = MAPFILTER_LINEAR
};
static const uint32_t vk_to_gen_mipmap_mode[] = {
[VK_TEX_MIPMAP_MODE_BASE] = MIPFILTER_NONE,
[VK_TEX_MIPMAP_MODE_NEAREST] = MIPFILTER_NEAREST,
[VK_TEX_MIPMAP_MODE_LINEAR] = MIPFILTER_LINEAR
[VK_SAMPLER_MIPMAP_MODE_BASE] = MIPFILTER_NONE,
[VK_SAMPLER_MIPMAP_MODE_NEAREST] = MIPFILTER_NEAREST,
[VK_SAMPLER_MIPMAP_MODE_LINEAR] = MIPFILTER_LINEAR
};
static const uint32_t vk_to_gen_tex_address[] = {
[VK_TEX_ADDRESS_MODE_WRAP] = TCM_WRAP,
[VK_TEX_ADDRESS_MODE_MIRROR] = TCM_MIRROR,
[VK_TEX_ADDRESS_MODE_CLAMP] = TCM_CLAMP,
[VK_TEX_ADDRESS_MODE_MIRROR_ONCE] = TCM_MIRROR_ONCE,
[VK_TEX_ADDRESS_MODE_CLAMP_BORDER] = TCM_CLAMP_BORDER,
[VK_SAMPLER_ADDRESS_MODE_REPEAT] = TCM_WRAP,
[VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT] = TCM_MIRROR,
[VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE] = TCM_CLAMP,
[VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE] = TCM_MIRROR_ONCE,
[VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER] = TCM_CLAMP_BORDER,
};
static const uint32_t vk_to_gen_compare_op[] = {
@ -329,7 +329,7 @@ VkResult genX(CreateSampler)(
#if ANV_GEN == 8
.BaseMipLevel = 0.0,
#endif
.MipModeFilter = vk_to_gen_mipmap_mode[pCreateInfo->mipMode],
.MipModeFilter = vk_to_gen_mipmap_mode[pCreateInfo->mipmapMode],
.MagModeFilter = mag_filter,
.MinModeFilter = min_filter,
.TextureLODBias = anv_clamp_f(pCreateInfo->mipLodBias, -16, 15.996),