Vulkan: Don't Use Tiled Drawing #107728

Merged
Jeroen Bakker merged 1 commits from Jeroen-Bakker/blender:vulkan-draw-pixels into main 2023-05-09 14:12:51 +02:00
1 changed files with 6 additions and 7 deletions

View File

@ -21,12 +21,12 @@
#include "IMB_colormanagement.h"
#include "IMB_imbuf_types.h"
#include "GPU_context.h"
#include "GPU_immediate.h"
#include "GPU_matrix.h"
#include "GPU_texture.h"
#ifdef __APPLE__
# include "GPU_context.h"
# include "GPU_state.h"
#endif
@ -147,18 +147,17 @@ void immDrawPixelsTexTiled_scaling_clipping(IMMDrawPixelsTexState *state,
const float color[4])
{
int subpart_x, subpart_y, tex_w = 256, tex_h = 256;
#ifdef __APPLE__
if (GPU_backend_get_type() == GPU_BACKEND_METAL) {
/* NOTE(Metal): The Metal backend will keep all temporary texture memory within a command
if (ELEM(GPU_backend_get_type(), GPU_BACKEND_METAL, GPU_BACKEND_VULKAN)) {
/* NOTE: These backend will keep all temporary texture memory within a command
* submission in-flight, so using a partial tile size does not provide any tangible memory
* reduction, but does incur additional API overhead and significant cache inefficiency on AMD
* platforms.
* reduction, but does incur additional API overhead and significant cache inefficiency on
* specific platforms.
*
* The Metal API also provides smart resource paging such that the application can
* still efficiently swap memory, even if system is low in physical memory. */
tex_w = img_w;
tex_h = img_h;
}
#endif
int seamless, offset_x, offset_y, nsubparts_x, nsubparts_y;
int components;
const bool use_clipping = ((clip_min_x < clip_max_x) && (clip_min_y < clip_max_y));