SWDEV-363074 - Adjust staging copy limits in Windows
Pinned copy can cause big performance drops, because slow pinning under Windows. Use up to 128MB for staging transfers. Change staging buffer size to 4MB. Linux path should still have the old defaults. Change-Id: I954edceb3ec89e8e670be116aa2d0a9564c8b11c
This commit is contained in:
@@ -54,7 +54,7 @@ Settings::Settings() {
|
||||
|
||||
stagedXferRead_ = true;
|
||||
stagedXferWrite_ = true;
|
||||
stagedXferSize_ = GPU_STAGING_BUFFER_SIZE * Ki;
|
||||
stagedXferSize_ = GPU_STAGING_BUFFER_SIZE * Mi;
|
||||
|
||||
// We will enable staged read/write if we use local memory
|
||||
disablePersistent_ = false;
|
||||
@@ -78,14 +78,9 @@ Settings::Settings() {
|
||||
|
||||
// By default use host blit
|
||||
blitEngine_ = BlitEngineHost;
|
||||
constexpr size_t MaxPinnedXferSize = 64;
|
||||
pinnedXferSize_ = std::min(GPU_PINNED_XFER_SIZE, MaxPinnedXferSize) * Mi;
|
||||
|
||||
constexpr size_t PinnedMinXferSize = 4 * Mi;
|
||||
pinnedXferSize_ = GPU_PINNED_MIN_XFER_SIZE * Mi;
|
||||
pinnedMinXferSize_ = flagIsDefault(GPU_PINNED_MIN_XFER_SIZE)
|
||||
? PinnedMinXferSize
|
||||
: GPU_PINNED_MIN_XFER_SIZE * Ki;
|
||||
pinnedMinXferSize_ = std::min(pinnedMinXferSize_, pinnedXferSize_);
|
||||
? 128 * Mi : GPU_PINNED_MIN_XFER_SIZE * Mi;
|
||||
|
||||
// Disable FP_FAST_FMA defines by default
|
||||
reportFMAF_ = false;
|
||||
|
||||
@@ -62,14 +62,15 @@ Settings::Settings() {
|
||||
|
||||
stagedXferRead_ = true;
|
||||
stagedXferWrite_ = true;
|
||||
stagedXferSize_ = GPU_STAGING_BUFFER_SIZE * Ki;
|
||||
stagedXferSize_ = flagIsDefault(GPU_STAGING_BUFFER_SIZE)
|
||||
? 1 * Mi : GPU_STAGING_BUFFER_SIZE * Mi;
|
||||
|
||||
// Initialize transfer buffer size to 1MB by default
|
||||
xferBufSize_ = 1024 * Ki;
|
||||
|
||||
const static size_t MaxPinnedXferSize = 128;
|
||||
pinnedXferSize_ = std::min(GPU_PINNED_XFER_SIZE, MaxPinnedXferSize) * Mi;
|
||||
pinnedMinXferSize_ = std::min(GPU_PINNED_MIN_XFER_SIZE * Ki, pinnedXferSize_);
|
||||
pinnedXferSize_ = GPU_PINNED_MIN_XFER_SIZE * Mi;
|
||||
pinnedMinXferSize_ = flagIsDefault(GPU_PINNED_MIN_XFER_SIZE)
|
||||
? 1 * Mi : GPU_PINNED_MIN_XFER_SIZE * Mi;
|
||||
|
||||
sdmaCopyThreshold_ = GPU_FORCE_BLIT_COPY_SIZE * Ki;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user