diff options
-rw-r--r-- | src/gallium/drivers/zink/zink_context.c | 17 | ||||
-rw-r--r-- | src/gallium/drivers/zink/zink_helpers.h | 37 |
2 files changed, 41 insertions, 13 deletions
diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index ffc24daf159..f472127add3 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -27,6 +27,7 @@ #include "zink_compiler.h" #include "zink_fence.h" #include "zink_framebuffer.h" +#include "zink_helpers.h" #include "zink_pipeline.h" #include "zink_program.h" #include "zink_render_pass.h" @@ -69,16 +70,6 @@ zink_context_destroy(struct pipe_context *pctx) FREE(ctx); } -static VkFilter -filter(enum pipe_tex_filter filter) -{ - switch (filter) { - case PIPE_TEX_FILTER_NEAREST: return VK_FILTER_NEAREST; - case PIPE_TEX_FILTER_LINEAR: return VK_FILTER_LINEAR; - } - unreachable("unexpected filter"); -} - static VkSamplerMipmapMode sampler_mipmap_mode(enum pipe_tex_mipfilter filter) { @@ -131,8 +122,8 @@ zink_create_sampler_state(struct pipe_context *pctx, VkSamplerCreateInfo sci = {}; sci.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; - sci.magFilter = filter(state->mag_img_filter); - sci.minFilter = filter(state->min_img_filter); + sci.magFilter = zink_filter(state->mag_img_filter); + sci.minFilter = zink_filter(state->min_img_filter); if (state->min_mip_filter != PIPE_TEX_MIPFILTER_NONE) { sci.mipmapMode = sampler_mipmap_mode(state->min_mip_filter); @@ -1384,7 +1375,7 @@ blit_native(struct zink_context *ctx, const struct pipe_blit_info *info) vkCmdBlitImage(batch->cmdbuf, src->image, src->layout, dst->image, dst->layout, 1, ®ion, - filter(info->filter)); + zink_filter(info->filter)); return true; } diff --git a/src/gallium/drivers/zink/zink_helpers.h b/src/gallium/drivers/zink/zink_helpers.h new file mode 100644 index 00000000000..9fea18ac318 --- /dev/null +++ b/src/gallium/drivers/zink/zink_helpers.h @@ -0,0 +1,37 @@ +/* + * Copyright 2019 Collabora Ltd. + * + * 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 + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, 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 NON-INFRINGEMENT. IN NO EVENT SHALL + * THE AUTHOR(S) AND/OR THEIR SUPPLIERS 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 ZINK_HELPERS_H +#define ZINK_HELPERS_H + +static inline VkFilter +zink_filter(enum pipe_tex_filter filter) +{ + switch (filter) { + case PIPE_TEX_FILTER_NEAREST: return VK_FILTER_NEAREST; + case PIPE_TEX_FILTER_LINEAR: return VK_FILTER_LINEAR; + } + unreachable("unexpected filter"); +} + +#endif |