From e4d41f8090838359ae0deb1af410e8a501a6a9b6 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 20 May 2009 15:13:28 +1000 Subject: Fix possible X11/EGL crash. Changed-by: Rhys Weatherley Reviewed-by: Tom Cooksey --- src/opengl/qgl_x11egl.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/opengl/qgl_x11egl.cpp b/src/opengl/qgl_x11egl.cpp index 480a2dc..f8ea8de 100644 --- a/src/opengl/qgl_x11egl.cpp +++ b/src/opengl/qgl_x11egl.cpp @@ -268,10 +268,16 @@ void QGLWidget::setContext(QGLContext *context, const QGLContext* shareContext, XVisualInfo vi; - int err = XMatchVisualInfo(x11Info().display(), x11Info().screen(), x11Info().depth(), TrueColor, &vi); - if (err == 0) { - qWarning("Error: Couldn't get a matching X visual for format"); - return; + if (parentWidget()) { + vi.depth = parentWidget()->x11Info().depth(); + vi.screen = parentWidget()->x11Info().screen(); + vi.visual = (Visual *)(parentWidget()->x11Info().visual()); + } else { + int err = XMatchVisualInfo(x11Info().display(), x11Info().screen(), x11Info().depth(), TrueColor, &vi); + if (err == 0) { + qWarning("Error: Couldn't get a matching X visual for format"); + return; + } } XSetWindowAttributes a; -- cgit v0.12 From b5bada2b06d85ea74a851b98d3652aff8e64a723 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 20 May 2009 15:44:34 +1000 Subject: Cleanup and fixes for performance logging. --- src/declarative/fx/qfximage.cpp | 3 +++ src/declarative/qml/qmlscriptparser.cpp | 5 +++++ src/declarative/util/qfxperf.cpp | 17 ++++++++--------- src/declarative/util/qfxperf.h | 13 ++++++------- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/declarative/fx/qfximage.cpp b/src/declarative/fx/qfximage.cpp index 4197a80..064580e 100644 --- a/src/declarative/fx/qfximage.cpp +++ b/src/declarative/fx/qfximage.cpp @@ -863,6 +863,9 @@ QString QFxImage::source() const void QFxImage::setSource(const QString &url) { +#ifdef Q_ENABLE_PERFORMANCE_LOG + QFxPerfTimer perf; +#endif Q_D(QFxImage); if (url == d->source) return; diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp index ead7ee5..435a586 100644 --- a/src/declarative/qml/qmlscriptparser.cpp +++ b/src/declarative/qml/qmlscriptparser.cpp @@ -12,6 +12,8 @@ #include #include +#include + QT_BEGIN_NAMESPACE using namespace JavaScript; @@ -621,6 +623,9 @@ QmlScriptParser::~QmlScriptParser() bool QmlScriptParser::parse(const QByteArray &data, const QUrl &url) { +#ifdef Q_ENABLE_PERFORMANCE_LOG + QFxPerfTimer pt; +#endif const QString fileName = url.toString(); QTextStream stream(data, QIODevice::ReadOnly); diff --git a/src/declarative/util/qfxperf.cpp b/src/declarative/util/qfxperf.cpp index 5ce8646..ae51157 100644 --- a/src/declarative/util/qfxperf.cpp +++ b/src/declarative/util/qfxperf.cpp @@ -44,16 +44,20 @@ QT_BEGIN_NAMESPACE Q_DEFINE_PERFORMANCE_LOG(QFxPerf, "QFx") { - Q_DEFINE_PERFORMANCE_METRIC(XmlParsing, "XML Parsing"); - Q_DEFINE_PERFORMANCE_METRIC(Compile, "XML Compilation"); - Q_DEFINE_PERFORMANCE_METRIC(CompileRun, "XML Compilation Run"); - Q_DEFINE_PERFORMANCE_METRIC(CssParsing, "CSS Parsing"); + Q_DEFINE_PERFORMANCE_METRIC(QmlParsing, "QML Parsing"); + Q_DEFINE_PERFORMANCE_METRIC(Compile, "QML Compilation"); + Q_DEFINE_PERFORMANCE_METRIC(CompileRun, "QML Compilation Run"); Q_DEFINE_PERFORMANCE_METRIC(CreateComponent, "Component creation"); Q_DEFINE_PERFORMANCE_METRIC(BindInit, "BindValue Initialization"); Q_DEFINE_PERFORMANCE_METRIC(BindCompile, "BindValue compile"); Q_DEFINE_PERFORMANCE_METRIC(BindValue, "BindValue execution"); Q_DEFINE_PERFORMANCE_METRIC(BindValueSSE, "BindValue execution SSE"); Q_DEFINE_PERFORMANCE_METRIC(BindValueQt, "BindValue execution QtScript"); + Q_DEFINE_PERFORMANCE_METRIC(ContextQuery, "QtScript: Query Context"); + Q_DEFINE_PERFORMANCE_METRIC(ContextProperty, "QtScript: Context Property"); + Q_DEFINE_PERFORMANCE_METRIC(ObjectQuery, "QtScript: Query Object"); + Q_DEFINE_PERFORMANCE_METRIC(ObjectProperty, "QtScript: Object Property"); + Q_DEFINE_PERFORMANCE_METRIC(ObjectSetProperty, "QtScript: Set Object Property"); Q_DEFINE_PERFORMANCE_METRIC(BindableValueUpdate, "QmlBindableValue::update"); Q_DEFINE_PERFORMANCE_METRIC(PixmapLoad, "Pixmap loading"); Q_DEFINE_PERFORMANCE_METRIC(MetaProperty, "Meta property resolution"); @@ -65,11 +69,6 @@ Q_DEFINE_PERFORMANCE_LOG(QFxPerf, "QFx") { Q_DEFINE_PERFORMANCE_METRIC(ComponentInstanceComponentComplete, "QFxComponentInstance::componentComplete"); Q_DEFINE_PERFORMANCE_METRIC(BaseLayoutComponentComplete, "QFxBaseLayout::componentComplete"); Q_DEFINE_PERFORMANCE_METRIC(TextComponentComplete, "QFxText::componentComplete"); - Q_DEFINE_PERFORMANCE_METRIC(ContextQuery, "QtScript: Query Context"); - Q_DEFINE_PERFORMANCE_METRIC(ContextProperty, "QtScript: Context Property"); - Q_DEFINE_PERFORMANCE_METRIC(ObjectQuery, "QtScript: Query Object"); - Q_DEFINE_PERFORMANCE_METRIC(ObjectProperty, "QtScript: Object Property"); - Q_DEFINE_PERFORMANCE_METRIC(ObjectSetProperty, "QtScript: Set Object Property"); Q_DEFINE_PERFORMANCE_METRIC(QFxText_setText, "QFxText::setText"); } QT_END_NAMESPACE diff --git a/src/declarative/util/qfxperf.h b/src/declarative/util/qfxperf.h index b1f9bd0..d1f3a5b 100644 --- a/src/declarative/util/qfxperf.h +++ b/src/declarative/util/qfxperf.h @@ -50,16 +50,20 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) Q_DECLARE_PERFORMANCE_LOG(QFxPerf) { - Q_DECLARE_PERFORMANCE_METRIC(XmlParsing); + Q_DECLARE_PERFORMANCE_METRIC(QmlParsing); Q_DECLARE_PERFORMANCE_METRIC(Compile); Q_DECLARE_PERFORMANCE_METRIC(CompileRun); - Q_DECLARE_PERFORMANCE_METRIC(CssParsing); Q_DECLARE_PERFORMANCE_METRIC(CreateComponent); Q_DECLARE_PERFORMANCE_METRIC(BindInit); Q_DECLARE_PERFORMANCE_METRIC(BindCompile); Q_DECLARE_PERFORMANCE_METRIC(BindValue); Q_DECLARE_PERFORMANCE_METRIC(BindValueSSE); Q_DECLARE_PERFORMANCE_METRIC(BindValueQt); + Q_DECLARE_PERFORMANCE_METRIC(ContextQuery); + Q_DECLARE_PERFORMANCE_METRIC(ContextProperty); + Q_DECLARE_PERFORMANCE_METRIC(ObjectQuery); + Q_DECLARE_PERFORMANCE_METRIC(ObjectProperty); + Q_DECLARE_PERFORMANCE_METRIC(ObjectSetProperty); Q_DECLARE_PERFORMANCE_METRIC(BindableValueUpdate); Q_DECLARE_PERFORMANCE_METRIC(PixmapLoad); Q_DECLARE_PERFORMANCE_METRIC(MetaProperty); @@ -71,11 +75,6 @@ Q_DECLARE_PERFORMANCE_LOG(QFxPerf) { Q_DECLARE_PERFORMANCE_METRIC(ComponentInstanceComponentComplete); Q_DECLARE_PERFORMANCE_METRIC(BaseLayoutComponentComplete); Q_DECLARE_PERFORMANCE_METRIC(TextComponentComplete); - Q_DECLARE_PERFORMANCE_METRIC(ContextQuery); - Q_DECLARE_PERFORMANCE_METRIC(ContextProperty); - Q_DECLARE_PERFORMANCE_METRIC(ObjectQuery); - Q_DECLARE_PERFORMANCE_METRIC(ObjectProperty); - Q_DECLARE_PERFORMANCE_METRIC(ObjectSetProperty); Q_DECLARE_PERFORMANCE_METRIC(QFxText_setText); } -- cgit v0.12