From 8059632fbdd656a4892918745244fd84a746ee93 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Thu, 24 Sep 2020 17:55:53 +0200 Subject: rhi: Drop the zeroing out of resource binding structs This has a non-insignificant cost (since the size is at least 260 bytes) in renderers that construct a lot of these objects per frame. After changing the qHash implementation to be lighter we no longer rely on qHashBits, so zeroing it is not essential anymore. Remove it. Change-Id: If1fbd8dfd46fb3f0e9ea5a3c4794d24b8aeac1ba Reviewed-by: Andy Nichols --- src/gui/rhi/qrhi.cpp | 8 -------- src/gui/rhi/qrhi_p.h | 4 ++-- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/gui/rhi/qrhi.cpp b/src/gui/rhi/qrhi.cpp index 17a1ca91e2..d4ffc4d180 100644 --- a/src/gui/rhi/qrhi.cpp +++ b/src/gui/rhi/qrhi.cpp @@ -2858,14 +2858,6 @@ bool QRhiShaderResourceBindings::isLayoutCompatible(const QRhiShaderResourceBind \value ComputeStage Compute stage */ -/*! - \internal - */ -QRhiShaderResourceBinding::QRhiShaderResourceBinding() -{ - memset(&d.u, 0, sizeof(d.u)); -} - /*! \return \c true if the layout is compatible with \a other. The layout does not include the actual resource (such as, buffer or texture) and related diff --git a/src/gui/rhi/qrhi_p.h b/src/gui/rhi/qrhi_p.h index bdfaec9fdf..1d0b6ebfab 100644 --- a/src/gui/rhi/qrhi_p.h +++ b/src/gui/rhi/qrhi_p.h @@ -346,7 +346,7 @@ public: }; Q_DECLARE_FLAGS(StageFlags, StageFlag) - QRhiShaderResourceBinding(); + QRhiShaderResourceBinding() = default; bool isLayoutCompatible(const QRhiShaderResourceBinding &other) const; @@ -415,7 +415,7 @@ private: Q_DECLARE_OPERATORS_FOR_FLAGS(QRhiShaderResourceBinding::StageFlags) -Q_DECLARE_TYPEINFO(QRhiShaderResourceBinding, Q_MOVABLE_TYPE); +Q_DECLARE_TYPEINFO(QRhiShaderResourceBinding, Q_PRIMITIVE_TYPE); Q_GUI_EXPORT bool operator==(const QRhiShaderResourceBinding &a, const QRhiShaderResourceBinding &b) noexcept; Q_GUI_EXPORT bool operator!=(const QRhiShaderResourceBinding &a, const QRhiShaderResourceBinding &b) noexcept; -- cgit v1.2.3