Godot: رسم الخرائط / رسم الخفقان العشوائي باستخدام برامج تشغيل Nvidia

تم إنشاؤها على ٢٧ يوليو ٢٠١٧  ·  191تعليقات  ·  مصدر: godotengine/godot

نظام التشغيل أو الجهاز - إصدار Godot:
Windows 10 ، godot3.0alpha1

وصف المشكلة:
لقد صنعت kinematicbody2D وخريطة tilemap ، وتحريك الجسم الحركي حول العمل كالمعتاد ولكن في بعض الأحيان قد يختفي أحد المربعات الموجودة على tilemap بشكل أسرع مما يمكن لأي برنامج تسجيل شاشة التقاطه. في بعض الأحيان تتلاشى 2 ، ولكن يتم إعادة رسمها

خطوات التكاثر:
قم بعمل خريطة للبلاط ، وقم بتحميل بعض المربعات ، وقم بعمل جسم حركي
حرك الجسد في جميع أنحاء اللعبة ، وأبق عينيك مفتوحتين ، ولا ترمش ، راقب بينما تختفي بعض القطع من العرض وتعود بسرعة

bug confirmed high priority rendering

التعليق الأكثر فائدة

قد يكون هذا بسبب المخازن المؤقتة للقمة التي يتم إعادة استخدامها حاليًا عدة مرات لكل إطار (وهو ما قد يتسبب أيضًا في حدوث مشكلات في الأداء). أي يتم استخدام المخزن المؤقت للقمة لرسم كائن واحد ، وتغييره في منتصف الطريق لبدء الرسم التالي. أنا أحقق.

أظن أن التجميع المناسب ثنائي الأبعاد سيحل هذه المشكلة والأداء ثنائي الأبعاد.

ال 191 كومينتر

يمكن تأكيد أن هذا لا يزال يحدث باستخدام الإصدار المخصص من Godot 3.0 https://github.com/godotengine/godot/commit/29db531fc8360b1e6d5e23008b208517b6d8c627

يحدث ذلك أيضًا في المحرر:

https://i.imgur.com/3dv3fih.png
https://i.imgur.com/KTAyyqm.png

يجب أن يكون كل العشب.

تحرير: يبدو أنه إذا تم تعيين حجم الربع على 1 ، فستختفي المشكلة

تحرير 2: المربعات لا تختفي ولكن يتم تحريكها (مشكلة تحويل؟)

https://i.imgur.com/T0GBaFv.png

تحرير 3: فيديو منخفض الجودة. https://streamable.com/6a07b استغرقت بعض الوقت لبدء المشكلة (تم ضبط المحرر على التحديث دائمًا)

لا تزال هذه المشكلة تحدث في الإصدار الأحدث الرئيسي 1f4685375f2d2e36a2e19e67ac9f614b8c99ea28

يبدو أن المشكلة لا تتعلق فقط بخريطة البلاط. لقد وجدت نفس المشكلات مع نص كبير داخل ملصق. لدي شعور أن هذا يحدث فقط بعد استخدام percent_visible أو نقل الملصق. هذه المرة لم أتمكن من ملاحظة ذلك إلا أثناء تشغيل اللعبة ولكني لن أتجاهل نفس الشيء الذي يحدث في المحرر. لم أتمكن من التقاط صورة أو مقطع فيديو منه ولكن بعض الأحرف تبدأ في الوميض والانتقال إلى موضع آخر بتحول مختلف (يمكنك رؤية جزء من الحروف من نسيج الخط)

تحديث: هذه المشكلة أساسية. هذا يحدث أيضًا للمحرر نفسه. لم أتمكن من التقاط لقطة شاشة لأنه بحلول الوقت الذي ألاحظ فيه ذلك وأريد التقاط لقطة شاشة ، ربما يكون المحرر قد تم تحديثه وتختفي المشكلة. لقد لاحظت المشكلة في قسمين من المحرر ، ليس الأمر أنه يحدث في هذين القسمين ولكن الأقسام التي لاحظت المشكلة: في محتوى الإخراج تومض بعض الأحرف وأحد تسميات علامات التبويب في أسفل الشاشة حيث الإخراج ، المصحح ، الصوت ، ... تسميات. بدأ الحرف D من تسمية المصحح في الوميض. ليس من السهل إثارة المشكلة ولكنها نفس المشكلة.

لدي مشكلة التسمية على الفيديو (يبدأ الخفقان حوالي نصف الفيديو) https://streamable.com/e31xp انظر عن كثب نحو نهاية السطر الرابع وسترى بعض الحروف تومض

عذرًا ، لا أعتقد أن التعديل سيرسل إشعارات وأعتقد أن هذه مشكلة مهمة

https://i.gyazo.com/1ccc584f1746d0fc342f6de6609d33f0.mp4

أواجه نفس المشكلة ... (حوالي 0:04 ترى وميض البلاط)
أنا فقط أستخدم Sprite ونص حركتي الخاصة

بعد الكثير من الاختبارات ، أنا واثق من أن مشكلتي (# 15113) هي نفسها هذه المشكلة. الغريب هو شيئين:

  1. كنت في الأصل أرى نفس المشكلة بالضبط التي كانت Remixful تراها مع وميض المربعات بأكملها ، ولكن بعد ذلك
  2. إذا تركت المشهد في وضع الخمول ، لا أرى أي قطع أثرية غريبة أو وميض ، ولكن بمجرد أن أبدأ في تحريك شخصيتي (أو ربما من الكاميرا تتحرك؟) عندها بدأت أرى الخفقان بشكل ما.
  3. أنا قادر على التقاط وميض المربع الكامل على الفيديو بسهولة ، ولكن عندما أحاول تسجيل وميض الخط ، على الرغم من أنه يحدث بالتأكيد أثناء التصوير ، فإن الخفقان لا يمكن العثور عليه في أي مكان في الفيديو.

أيضًا ، FWIW ، لم يحدث هذا على الإطلاق في 2.1 مع نفس المشروع بالضبط.

سيكون من الجيد أن يكون لديك مثال لمشروع يعيد إنتاج المشكلة (أعلم أنه يجب أن يكون من السهل القيام به بناءً على الخطوات المعينة لإعادة الإنتاج ، لكن وقت تطوير المحرك هو مورد نادر :)).

@ akien-mga
flickertest.zip

قد تحتاج إلى تشغيل المشروع عدة مرات قبل رؤيته ، ولكن بمجرد أن يبدأ ، دعه يجلس وستراه في النهاية.

لقد جربت عدة أشياء لمعرفة ما إذا حدث ذلك في سيناريوهات مختلفة. يمكنني إعادة إنتاجه فقط عندما كان Camera2D طفلاً في YSort. قد يكون هذا دليل.

لقد رأيت هذا بالأمس في العرض التوضيحي kinematic_char: \

ما وجدته حول هذه المشكلة هو:

  • من الصعب إعادة الإنتاج والتقاط الفيديو. في بعض الأحيان ستشاهده طوال الوقت وعندما تحاول تسجيله باستخدام OBS أو أي برنامج تسجيل شاشة ، فلن تحدث المشكلة. ثم مرة أخرى ، في بعض الأحيان يحدث ذلك حتى أثناء التسجيل لذلك لا أعرف 😅
  • يمكن أن يحدث في أي وقت وفي أي مكان (حتى في المحرر نفسه ، وليس فقط في المشهد الذي يتم تحريره)
  • يبدو أنه يحدث فقط مع TileMap s بحجم ربع خلية أكبر من 1 ، وأحيانًا مع النص. أنا لا أقول أن هذا لا يحدث مع أشياء أخرى ولكني رأيت ذلك يحدث فقط عند استخدام هذين الأمرين.
  • ولا أرى أي خطأ في الكود. منح أنا لست خبيرا في ذلك أو أي شيء. الشيء الوحيد الذي يمكنني التفكير فيه هو أن بعض التحويل لا يتم تعيينه بشكل عشوائي بشكل عشوائي ... dunno حقا 😓

راجع # 16277 للحصول على مثال آخر لمشروع يجب أن يعيد إظهار المشكلة.

انظر 16280 لموضوع آخر بخصوص هذا.

مرحبًا ، للإضافة إلى هذا وللتوضيح فقط ، لم أفعل أي شيء على الإطلاق مع Godot وقد جربت هذا المشروع على وجه التحديد منذ أن كنت فضوليًا:
image

يحدث الخفقان في مسرحية اختبارية ولكن ليس في المحرر. ومن المثير للاهتمام أن العكس يحدث إذا جربت 2D Kinematic Character Demo حيث تومض مربعات المحرر ولكن ليس في اختبار اللعب.

في تجربتي على الأقل ، يبدو أن هذا قد تم حله في godot المستقر
الإصدار 3.0.

في الأحد ، 4 فبراير ، 2018 ، الساعة 2:56 صباحًا ، كتب Archeia [email protected] :

مرحبًا ، للإضافة إلى هذا وللتوضيح فقط ، لم أفعل أي شيء على الإطلاق
مع Godot وأنا جربت للتو هذا المشروع على وجه التحديد منذ أن كنت
فضولي:
[صورة: صورة]
https://user-images.githubusercontent.com/6222499/35776735-0b413ce2-09dd-11e8-81cc-be7a097d61cd.png

ومن المثير للاهتمام ، أنني لا أحصل على هذه المشكلة مع الشخصية الحركية ثنائية الأبعاد
تجريبي

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/godotengine/godot/issues/9913#issuecomment-362898191 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/ABW9yzPGCmyxZONEuNXLFKU_PtY3ADsvks5tRYzmgaJpZM4OlRVq
.

jonbonazza لقد استخدمت أحدث إصدار ثابت من godot3 وما زال يحدث. تظهر صورتي في الزاوية اليمنى العليا أيضًا T_T)

يبدو أن هذا الخطأ يحدث على بطاقات الرسوم Nvidia أعلى من GTX 970M؟

GeForce GTX 970 هنا.

فيما يلي بعض النتائج التي توصلت إليها ومشروع بسيط لإعادة إنتاج هذه المشكلة. (خريطة قرميد تحتوي على نقائين مختلفين ، رمز godot وأيقونة godot بألوان مقلوبة ، مع تسميات أعلى خريطة Tilemap ، يتم تضمين المشهد الذي تم تحويله إلى مجموعة تجانب)

Flicker.zip

  • يحدث أيضًا للملصقات في هذا المشهد ، تتحرك الأحرف الفردية بشكل عشوائي (حتى يتم تدويرها) ، تمامًا مثل مربعات المربعات
  • إذا كنت داخل المحرر وقمت بتحريك الماوس على الشبكة أثناء تحديد مربع ، يمكنك أحيانًا رؤية هذه المشكلة في حالة مجمدة حتى تحريك الماوس إلى قسم شبكة مختلف
  • يغير ترتيب العقد في شجرة المشهد تواتر هذا (إذا كانت خريطة التل هي العقدة الأخيرة ، فإنها تحدث بشكل متكرر لخريطة البلاط وإذا كانت الخريطة هي العقدة الأولى ، فإنها تحدث بشكل متكرر للتسميات)

تحرير: إليك لقطة شاشة للمشكلة. يمكنك أن ترى 2 E من السطر الأول ممتدًا بشكل غريب عبر قسم تجانب واحد من خريطة tilemap. (أحمر)

bug

تتوقف التسميات عن الوميض بمجرد إزالة خريطة اللوحة من المشهد.

آمل أن يساعد هذا في حل هذه المشكلة.

45ab9cdfb55eed4eef59feee225248ccc20a6235
تم تصديره (إصدار) من Linux إلى windows (32 بت و 64 بت)
الوميض على Win 10 مع Nvidia GTX 750 Ti (لا يمكنك الوصول إلى هذا الجهاز لتصحيح الأخطاء)

تعذر إعادة الإنتاج على Nvidia GTX 760 مع دبيان أو Win7.

الخفقان موجود مع GTX 1060 على Win7 بالنسبة لي. آمل حقًا أن يتم إصلاح هذا قريبًا جدًا لأنه كما هو الآن ، فإن TileMap ببساطة غير قابل للاستخدام للإنتاج. :(

نفس المشكلة مع خطوط الخفقان بين البلاط هنا. تحقق من هذا
منهاج tut.zip
خلل مزعج للغاية وغير سار = (((

podmentor خطوط بين المربعات أمر طبيعي ولا علاقة له بهذه المشكلة. هناك عدة طرق لحل مشكلتك هنا: http://docs.godotengine.org/en/latest/tutorials/2d/using_tilemaps.html؟highlight=tilemap#offset -and-scaling-artifacts

لدي هذه المشكلة مع لعبتي أيضًا. ولكن فقط عندما أقوم بتشغيل dGPU (Nvidia). لم ألاحظ ذلك مع وحدة معالجة الرسومات Intel المدمجة حتى الآن.

ملاحظة قد تساعد. لدي هذه المشكلة مع win10 و nvidia gtx 1070. ولكن يبدو أن تشغيل ysort على tilemap قد أوقف الخلل.

لاحظ أن Ysort تفرض ~~ (خلية) ~ حجم الربع = 1.

securas واو ، لقد
@ bojidar-bg ربما أسيء فهم ما تقصده ، لكن لدي خريطة متجانبة بحجم خلية (16 ، 16) ولم يغير تمكين Ysort أي شيء عن ذلك ...

securas آسف لطرح هذا السؤال الجديد ولكن أين يمكنني العثور على ysort؟

Archeia يمكنك العثور عليه ضمن "الخلية" عند فحص خريطة البلاط.

تحرير: في المثال أعلاه ، لا تزال التسميات تومض حتى مع تشغيل Y-Sort ، لكني لم أر وميض tilemap بعد.

Edit2: رأيت للتو وميضًا للبلاط مع تشغيل Y-Sort. يبدو أن هذا لا يصلح هذه المشكلة. يبدو أنه يحدث بشكل أقل تكرارًا.

شكر! هذا أصلحه لي

شكرا @ bojidar-bg. كان لدي انطباع بأن حجم الخلية شيء آخر مثل حجم الخلايا ... ماذا تقصد بحجم الخلية؟

@ securas أوه ، بلدي سيئة ، كنت أعني حجم الربع. لست متأكدا لماذا أخطأت في ذلك ....

أعتذر إذا لم يضيف هذا الكثير إلى المحادثة ولكني ألاحظ هذا الخفقان مع العرض التوضيحي لـ Kinematic Collision في كل من المحرر وكملف تنفيذي مُصدَّر. Windows 10 64 بت. بطاقة GTX 1080 Ti. 2 شاشات @ 1440p. أقوم بتشغيل نسخة مجمعة ذاتيًا من godot 3.0.2. لقد جربت هذا في التصحيح والإصدار والإفراج عن الشوائب والوميض موجود في جميع الحالات.

تحرير: للوهلة الأولى ، يبدو أن تمكين ysort لخريطة tilemap يجعل الخفقان يختفي.

بدأت أتساءل عما إذا كانت هذه ليست مشكلة سائق. يبدو أن كل شخص يعاني من المشكلة يستخدم بطاقة nvidia ، ويبدو أن معظم الأشخاص يستخدمون نظام التشغيل windows 10.

Gettnig هذا أيضًا وأنا على Manjaro ، GTX970 هنا

يمكنني إعادة صياغة هذا الأمر ويمكنني أيضًا تأكيد أن تمكين Y Sort يعمل على إصلاحه. أنا أقوم بتشغيل Windows 8.1 مع GeForce GTX 1060.

تحرير: في الواقع أعتقد أن الخفقان قد يكون مرتبطًا بحجم الربع ، كما يقترح @ bojidar-bg. مع تعطيل Y Sort ، أرى مستويات مختلفة من الخفقان لأنني أغير حجم الربع. لم ألاحظ بعد الخفقان عند أحجام الربع 1 أو 2 أو 64 أو 128. أرى الكثير في النطاق 16-32.

ecdavis هل أنت متأكد من أنه يتوقف عن الوميض تمامًا؟ أنا أستخدم GTX 1060 أيضًا وما زلت ألاحظ الخفقان مع تشغيل Y Sort ، بشكل أقل كثيرًا.

أنا أشعر بالفضول حقًا لما قد يتسبب في وضع أحرف الملصقات داخل بلاط التلميب أحيانًا.

يبدو أن العديد من الأشياء لها تأثير على وتيرة الوميض ، مثل ترتيب العقدة ، لا أعتقد أنها مرتبطة ارتباطًا وثيقًا بحجم الربع.

Archlinux - Nvidia GTX 970 - Godot v3.0.2.stable.custom_build

مع ضبط حجم الربع على أي شيء! 1 ، تحدث مشكلة إزاحة البلاط باستمرار.

مع ضبط حجم رباعي على 1 ، لم تحصل على أي بلاطة نازحة ، ومع ذلك حصلت على خلل تمزيق لبضعة إطارات ، مرة واحدة فقط. ربما لا علاقة لها.

تم إصلاح الخفقان بالنسبة لي عن طريق تمكين Pixel Snap في إعدادات المشروع (التقديم -> الجودة -> 2d). وكان لدي مشكلة تمزيق تم إصلاحها بالنسبة لي عن طريق العبث بالإعدادات على صور المربعات والخرائط التي كنت أستوردها. وهي "مرشح" و "خرائط الصور". لقد أخبرته للتو باستخدام الإعداد المسبق 2d Pixel ، وقم بتعيينه كإعداد افتراضي للقوام.

rosshadden سيحاول عند العودة إلى المنزل وتحديث النتائج. شكرا للمشاركة!

تم تشغيل Pixel snap عندما فعلت ذلك ولم يحل المشكلة.
لقد توصلت بالفعل إلى ما قد يكون حلاً.
إذا قمت بتشغيل Y-Sort على حجم الخلية وقمت بتشغيل حجم الربع لمطابقة حجم الخلية (في حالتي 128) ، فيبدو أنه يزيل المشكلة تمامًا على الأقل بالنسبة لي

irresistiblejelly كما أشار @ Sort الرباعية إلى 1 داخليًا ، متجاهلاً القيمة المحددة في المحرر. ثم مرة أخرى ليست مشكلة مجموعات المربعات فقط ، لأن الخطوط الديناميكية مع mipmaping والمرشح المنشط لها نفس المشكلة (إزاحة الحرف في هذه الحالة).

تحتاج إلى إجراء اختبار شامل لتحديد المشكلة بدقة.

لقد جربت للتو اقتراح rosshadden بتشغيل Pixel Snap ، ويبدو أن هذا قد

لا يزال يحدث في iOS و macOS ، ولا يحدث على Android.
لقد قمت بتنشيط التقديم -> الجودة -> 2d -> Pixel Snap مما ساعد في تقليل التردد ، لكنه لا يزال يحدث.
captura de tela 2018-05-02 as 15 00 15
captura de tela 2018-05-02 as 15 00 11

ByTheQuietLake هل رأيت هذه المشكلة سابقًا ، أعتقد أنك أول شخص يتناغم مع بطاقة غير NVIDIA.

قد يكون هذا جيدًا مشكلة برنامج تشغيل nvidia بعد ذلك.

تم اختباره على Windows 10 باستخدام Godot 3.0.2:

  • Nvidia 1070 GTX (برنامج التشغيل 397.64): المشكلة تحدث.
  • Intel HD 4600: المشكلة لا تحدث.

هذه مشكلة محددة تحدث على الأقل مع مستخدمي Nvidia gpus. لاحظت أن المربعات ترسم بشكل عشوائي حول المشهد في وضع التحرير بينما يتحرك مؤشر الماوس على طول المشهد وعلامات التبويب الجانبية. يحدث أيضًا عند تشغيل اللعبة. يبدو أن الكثافة منخفضة عند ضبط حجم الربع على 1 (يضبطه التصنيف Y على 1) ولكنه لا يزال يحدث وهذا يزيل التحسين على الخرائط الكبيرة مما يتسبب في انخفاض معدل الإطارات الثقيل.

لقد واجهت أيضًا أعطالًا عند محاولة تعيين حجم الربع مرة أخرى على 1 (أو محاولة التحقق من Y Sort) بعد تغيير الإعداد على خريطة كبيرة (فتحت المشكلة مع # 19617). يبدو أن هذا يُظهر وجود معالجة كثيفة بشكل مفرط (أو ربما تسرب للذاكرة؟) وقد يكون مرتبطًا بالمشكلة الكلية للطريقة التي يتم بها ترميز خرائط TileMaps التي تتسبب في رسم المربعات بشكل غير منتظم. أظن أن المشكلة في Tile_map.cpp وربما في VS أو أي كود يتعامل مع عرض المربعات.

لم أواجه مشكلة الخطوط التي تم رسمها بشكل غير صحيح أعلاه ، لكنني أيضًا ربما لم أعبث بالخطوط بما يكفي لتجربة المشكلة. ما لم يتم النظر في الأمور وإصلاحها ، أخشى أن أرى ذلك أيضًا.

هذا يحتاج حقًا إلى النظر فيه وتصنيفه لأن العديد من المستخدمين لديهم بطاقات Nvidia والنشر على سطح المكتب يعني أن العديد من الأشخاص الذين لديهم بطاقات Nvidia سيلعبون اللعبة ويلاحظون هذه المشكلات.

يبدو أن المشكلة ربما تتعلق بـ "PowerMizer" ، عندما يتم تعيين الوضع المفضل على "Adaptative" ، تنخفض مستويات الأداء إلى الصفر (بعد 35 ~ 40 ثانية) ثم يبدأ الوميض ، ولكن إذا قمت بالتعيين على "Prefer أقصى أداء "، يختفي الوميض.

اختبرت مع Linux (برنامج التشغيل 390.59 و 396.24) و Windows (برنامج التشغيل 388.71 و 398.11).
~ على Windows ، بعد ترقية برنامج التشغيل الخاص بي إلى 398.11 ، يبدو أن المشكلة قد توقفت ~
captura de tela de 2018-06-18 14-06-54

مقطع الفيديو الذي سجلته يظهر الخطأ: https://youtu.be/R6TLpDX71RQ ؟t=32s
إذا أراد شخص ما الاختبار ، فإليك المشروع المستخدم: Flicker.zip

تحديث:
في المثال الخاص بي ، لا أستخدم TileMap ، إنها مجرد وظائف رسم بسيطة (draw_line و draw_rect) لإنشاء تلك الشبكة.

guilhermefelipecgs لا أعتقد أن هذا هو الحل الحقيقي. أفترض أن Nvidia X Server هو برنامج Linux OS مشابه لـ Nvidia Control Panel مع windows 10. لقد قمت بتعيين إعداد إدارة الطاقة على "أفضل أداء" في الداخل ويبدو أنه يقلل من إعادة تحديد المواقع ، لكنني ما زلت أرى أنه يحدث بعد تغيير الإعداد. هذا الخطأ غريب لأنه لا يظهر دائمًا عند استخدام البرنامج ، ولكنه يحدث. ربما يجب أن تجرب هذا باستخدام TileMap الفعلي.

حتى لو نجح هذا الإعداد. لماذا ستعمل؟ ألن يعني تعيين مدير الطاقة على الأداء الأقصى أن الرمز صعب على المعالج؟ يبدو أنه أحدث فرقًا بالنسبة لي ولكنه لم يحل المشكلة تمامًا. لا يزال بإمكاني التقاط البلاط من مكانه.

@ jamesaddy789 أنا لا أقول أن هذا هو الحل ، فقط أحاول الحصول على فكرة عما يمكن أن يسبب ذلك. لقد كنت مفتونًا لأنني عندما أستخدم وحدة معالجة الرسومات Intel الخاصة بي ، تعمل بشكل جيد ، ولا يحدث إلا مع nvidia ولاحظت أنه عندما تسقط ساعة gpu ، يظهر الوميض ، ولكن قد يكون هذا مجرد مصادفة ، لا أعرف. لقد حاولت أيضًا مع TileMap وبالنسبة لي على الأقل ، إنه نفس التفكير.

من الغريب أنك لم تكن لديك نفس التجربة مثلي. للفضول فقط ، ما هو إصدار برنامج تشغيل nvidia الخاص بك؟

هههههههههههههههه يبدو أن PowerMizer هو تطبيق كمبيوتر محمول بينما أنا أستخدم جهاز كمبيوتر مكتبي لذلك ليس لدي هذا البرنامج. لقد غيرت للتو إعداد إدارة الطاقة إلى "أفضل أداء" في لوحة تحكم Nvidia. يبدو أنه يقلل من كمية البلاط المخلوع ولكن عند تشغيل اللعبة ، لاحظت ذلك. على غرار تعيين حجم رباعي إلى 1 ، فقد قلل من التردد ولكنه لم يحل المشكلة تمامًا. لا يزال لدي أيضًا مشكلة في أنه إذا قمت بتغيير حجم الربع إلى 1 على خريطة كبيرة ، فإن المحرر يتعطل. هذا أيضًا أقل تواترًا بعد تغيير الإعداد إلى الأداء الأقصى لكنني اختبرته للتو وتحطمت.

ملاحظة : وحدة معالجة الرسومات الخاصة بي هي Nvidia Gtx 1060 6 جيجابايت مع برنامج التشغيل المذكور أعلاه. نظام التشغيل الخاص بي هو Windows 10 Professional.

أنا أيضًا أستخدم جهاز كمبيوتر هنا. في WIndows ، لوحة التحكم مختلفة قليلاً بالفعل ، الخيار الذي قمت بتغييره هو نفس الخيار الذي اختبرته هنا. دونو ما يجب القيام به. هذا الخطأ ممل جدا. :(

إنها مشكلة يجب أن تكون في رمز العرض. ليس لدي خبرة كافية مع رمز المحرك لاختباره والعمل به بنفسي. من المثير للاهتمام أنك لاحظت (guilhermefelipecgs) المشكلة عند رسم الشبكة يدويًا. اعتقدت أن المشكلة تكمن فقط في شفرة مصدر TileMap.

إذا تم رسم المستطيلات في كل مكان حتى عند عدم استخدام عقدة TileMap ، يجب أن أفترض أن الخطأ نشط أيضًا في وظيفة draw_rect () (في الكود المصدر على https://github.com/godotengine/godot/ blob / master / scene / resources / texture.cpp في السطر 47).

يستخدم رسم TileMaps VS في معظم وظائفه (في https://github.com/godotengine/godot/blob/master/scene/2d/tile_map.cpp) والوظيفة draw_rect () تستخدم VisualServer (أعتقد أن هذه هي نفس الشيء).

لماذا سيؤثر هذا على Nvidia gpus؟ لا أرى هذا النوع من المشاكل في البرامج الأخرى (محركات الألعاب الأخرى) لذا يمكنني فقط أن أهدف إلى كونها مشكلة في الكود المصدري والتي لسبب ما تؤثر (على الأقل بشكل ملحوظ أكثر) معالجات رسومات Nvidia.

guilhermefelipecgs المشكلة أقل تكرارًا بعد تغيير إعداد إدارة الطاقة وقد يكون هذا هو سبب عدم ملاحظتك لها. لقد استغرق الأمر في الواقع بعض الوقت لتشغيل اللعبة والتجول قبل أن أرى الخلل مرة أخرى. تجولت في أرجاء اللعبة مع KinematicBody2D لبضع دقائق قبل أن ألقي البلاط في غير محله. رأيت ما يكفي لمعرفة أن المشكلة لا تزال قائمة.

أنا متأكد بنسبة 98٪ أن هذه مشكلة في برنامج التشغيل. يبدو أن تعيين برنامج تشغيل nvidia Power management mode على Prefer maximum performance يحل المشكلة.

تستخدم الاختبارات التالية مشروع flickerguilhermefelipecgs وتجريده من الأساسيات التي لا تزال تثير المشكلة.

لقد كنت أحاول الحصول على تتبع GPU باستخدام RenderDoc لمدة 4 ساعات تقريبًا لتمكين وضع العملية المنخفض في اللعبة (لذلك إطار واحد في الثانية بشكل أساسي) ولكن ، بينما أعتقد أنني تمكنت من التقاط بعض الإطارات ذات المشكلات ، لم أستطع رؤيتها أي خطأ في أوامر opengl أو الإطار المعاد بناؤه من RenderDoc. مرة أخرى ، أعتقد أن لدي بعض الأطر الإشكالية ... من الصعب نوعًا ما الحصول عليها عندما تكون عشوائية.

لقد قمت أيضًا بتسجيل المستطيلات التي يتم إرسالها إلى التظليل لرسم كل مستطيل في ملف والبحث عن أي مستطيل خارج x <60 أو x> 420 أو y <60 أو y> 420 أو بعرض أو ارتفاع مختلف عن 20 و لم أجد شيئًا وأنا متأكد بنسبة 100٪ أنه يجب أن تكون هناك عيوب سيئة لأنني رأيتها أثناء تشغيل المشروع وتسجيله. فيما يلي السجلات godot_tilemap_issue_logs.zip إذا كنتم تشعرون بالرغبة في المرور عبرها (145 هو العنصر الذي تم تخليصه ، ثم مجموعة من الشقوق ثم 145 مرة أخرى ثم المستطيل ...) ما يتم تسجيله هو dst_rect من هنا https: / /github.com/godotengine/godot/blob/master/drivers/gles3/rasterizer_canvas_gles3.cpp#L687 -L701

هذا هو بناء النوافذ بالإضافة إلى الوميض المعدل الذي استخدمته لتسجيل المستقيمات. إذا كنت تريد تسجيله ، فاستخدم شيئًا مثل godot.windows.opt.tools.64.exe > log.txt في cmd (وليس بوويرشيل لأنه يستخدم ترميزًا آخر وهو أمر مؤلم)

للإشارة ، لقد جربت كلاً من اختبار Flicker الخاص بـ guilhermefelipecgs (Linux x86_64) والإصدار المعدّل من

  • ماجيا 6 x86_64
  • X11 1.19.5 ، Plasma / KWin 5.12.2 (تم اختباره باستخدام التركيب ON و OFF)
  • كمبيوتر محمول Optimus ، باستخدام Nvidia GTX 670MX عبر Nvidia PRIME (برامج التشغيل 390.59)
  • تم الاختبار مع Godot vsync ON and OFF ، بالإضافة إلى برامج التشغيل vsync ON and OFF

قد يكون خطأ برامج التشغيل يؤثر فقط على سطح المكتب أو وحدات معالجة الرسومات الحديثة.

هذا هو افتراضي أيضًا لأن 7 أيام تواجه مشكلات مع بطاقات السلسلة 10
على نطاق أوسع بكثير. أحصل على قطرات عشوائية في الثانية من 160 إلى 10 بدون سبب
على الحد الأدنى من الإعدادات مع Nvidia GeForce 6Gb gtx 1060. كمبيوتر مكتبي

في الثلاثاء ، 19 حزيران (يونيو) 2018 ، الساعة 09:04 مساءً ، ريمي فيرشيلد ، [email protected]
كتب:

للإشارة ، لقد جربت كلا منguilhermefelipecgs
https://github.com/guilhermefelipecgs اختبار الرجفة (Linux x86_64) و
mrcdk https://github.com/mrcdk النسخة المعدلة (النبيذ) ولا يمكن
إعادة إنتاج أي وميض على النظام التالي:

  • ماجيا 6 x86_64
  • X11 1.19.5 ، Plasma / KWin 5.12.2 (تم اختباره باستخدام التركيب ON و OFF)
  • كمبيوتر محمول Optimus ، يستخدم Nvidia GTX 670MX عبر Nvidia PRIME (برامج تشغيل
    390.59)
  • تم الاختبار مع Godot vsync ON and OFF ، وكذلك السائقين vsync ON و
    إيقاف

قد يكون خطأ برامج التشغيل يؤثر فقط على سطح المكتب أو وحدات معالجة الرسومات الحديثة.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/godotengine/godot/issues/9913#issuecomment-398311432 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AS-y9jLkTsEpQyBdu204PCK63wHgD1dxks5t-LCXgaJpZM4OlRVq
.

@ akien-mga هل تتغير ساعة الرسومات أثناء إجراء الاختبار كما يظهر guilhermefelipecgs في الفيديو الخاص بهم؟

هل تتغير ساعة الرسومات أثناء إجراء الاختبار كما يظهر guilhermefelipecgs في الفيديو الخاص بهم؟

لا يتغير ، عندما أبدأ تشغيل Godot ، ينتقل إلى أعلى قيمة للساعة ويبقى هناك. هذا ما يفسر سبب عدم ظهور الوميض ، وفقًا لفيديوguilhermefelipecgs ، فإنه يحدث فقط عند رفع تردد التشغيل (أعتقد أن بطاقتي ليست قوية بما يكفي لأرغب في خفض تردد التشغيل عند تشغيل مشروع Godot بسيط).

screenshot_20180619_191134

عندما تعتقد أن هذا لا يمكن أن يصبح أكثر غرابة ...

لقد صنعت مشروعًا جديدًا ولاحظت سلوكين غريبين.

1) أعرف "بالضبط" أين سيكون الوميض.
2) Control 3 لا تحصل أبدًا على "وميض".

سأحاول شرح ما يحدث:
1) أضفت 4 عناصر تحكم في المشهد مثل هذا:
captura de tela de 2018-06-19 15-45-25
تستخدم جميع عناصر التحكم نفس الرمز الأساسي. Control 1 ستكون العقدة الوحيدة ذات الوميض.

2) بعد مرور بعض الوقت (20 ~ 50 ثانية) ، سيقوم Node.gd بإصلاح العقد ، مثل هذا:
captura de tela de 2018-06-19 15-50-18
وبعد ذلك ، سوف يقفز الوميض من Control1 إلى Control 2 ، أي أن الطفل الأول فقط لديه وميض.
ملاحظة 1: أعتقد أن هذا يحدث على الأرجح لأن وظائف السحب سيتم وضعها في قائمة الانتظار بترتيب العقد.
NOTE2: Control 2 تستخدم draw_texture ، وهذه الطريقة أيضا وميض.

3) عندما يصبح الطفل الأول Control 3 يختفي الوميض بطريقة سحرية ، والسبب هو هذه العلامة:
captura de tela de 2018-06-19 15-45-52
تخبر العلامة Invert الكود بعكس وظائف الرسم ، لذا فإن الكود الخاص بي سوف يستدعي أولاً draw_line وبعد ذلك draw_rect ، لذلك ستكون المستطيلات الحمراء أمام الشبكة.

4) وأخيرًا ، يعود الوميض في Control 4 ، هنا أنا فقط أدعو draw_rect .

لقد نسيت أن أقول من قبل أنني لدي GTX970.

على Windows ، استخدمت برنامجًا لرؤية تغيير ساعة وحدة معالجة الرسومات الخاصة بي:
whatsapp image 2018-06-19 at 14 13 41
* تؤثر المشكلة أيضًا على Windows مع أحدث برنامج تشغيل (398.11) ، ولكن في كثير من الأحيان أقل وأحتاج إلى الانتظار لفترة أطول قليلاً. تجاهل إصدار محرك الأقراص في لقطة الشاشة هذه ، لقد قمت فقط بخفض مستوى محرك الأقراص الخاص بي لمعرفة ما إذا كان هناك أي اختلاف.

مشروع جديد: Flicker_2.zip
فيديو 1: https://youtu.be/01LWVQqp5yg
فيديو 2: https://youtu.be/XTKTe9aZAuU ؟t=50s

يجب أن أحاول 5 ~ 8 مرات حتى أحصل على وميض أكثر كثافة. يبدو أنه كلما لعبت أكثر ، كلما زاد التأثير.

الفيديو 2 هو نفس الفيديو 1 ولكن مستوى الأداء يزداد في الجزء الأخير من الفيديو لسبب ما وعندما يحدث هذا يمكنك ملاحظة اختفاء الوميض.

يتم تسجيل مقاطع الفيديو على Linux (لأن الخطأ أكثر كثافة على Linux) بمعدل 60 إطارًا في الثانية.

أنا متأكد بنسبة 98٪ أن هذه مشكلة في برنامج التشغيل.

أوافق ، لقد بحثت في الكود (godot) ولا أجد أي شيء غريب.

حسنًا ، لقد تمكنت من إطلاق المشروع مع apitrace وأنا الآن متأكد بنسبة 99.9998٪ أن هذه مشكلة تتعلق ببرنامج التشغيل تتعلق بـ Power management mode هنا ملف flicker_trace.zip حتى تتمكن من تشغيله من جانبك أيضًا .

وإليك مقطع فيديو سجلته: https://streamable.com/yk1qq الجودة سيئة نوعًا ما لذا إليك النسخة الأصلية (وهي ليست أفضل بكثير 😅)

أول 20 ثانية هي المشروع قيد التشغيل والتسجيل. لقد نسيت تقليل OBS في المرة الأولى التي استخدمت فيها apitrace وتم قفل ساعة وحدة معالجة الرسومات الخاصة بي إلى الحد الأقصى (إنه الرسم البياني في الزاوية العلوية اليمنى) ولم يكن الخفقان موجودًا. تخطي إلى aprox. 3:15 حيث قمت بتصغير OBS وظهرت الخطأ عند إعادة عرض التتبع. ثم استخدمت الخيار Show thumbnails لإنشاء صورة مصغرة لكل إطار. ثم قمت بالبحث في الصور المصغرة حتى وجدت إطارًا به الخطأ. قمت بتشغيل lookup state للحصول على حالة opengl لهذا الإطار الخرساني ، وبعد الانتهاء ، عرضت إطار الإطارات المؤقت بدون الخطأ.

لذلك ، إذا كانت هذه المشكلة ناتجة عن godot ، فلا يجب أن يظهر التتبع فقط في كل مرة (ليست هذه هي المرة الأولى التي أقوم بتشغيلها أثناء ترك OBS مفتوحًا) ويجب أن تبدو الصورة المصغرة ومخزن إطارات حالة البحث متماثلين (والتي من الواضح أنهم لم يفعلوا ذلك).

إذن ماذا يمكننا أن نفعل هنا؟ لا أعتقد أننا (كمجتمع) لدينا بالضرورة النفوذ لبدء التغيير من NVIDIA أنفسهم. أم نحن؟

إذن ماذا يمكننا أن نفعل هنا؟ لا أعتقد أننا (كمجتمع) لدينا بالضرورة النفوذ لبدء التغيير من NVIDIA أنفسهم. أم نحن؟

IMO يستحق المحاولة :) أسوأ حالة لم نحصل على إجابة ، ولكن فتح موضوع حول هذا في منتدى Nvidia dev سيكون جيدًا.

اهلا ياجماعة،

أتساءل ، هل تستمر المشكلة عند استخدام Nvidia Inspector وتعطيل CUDA - Force P2 State؟ كانت هذه مشكلة تسببت في حدوث وميض في بعض المشاريع الأخرى (مثل OBS). أرغب في معرفة ما إذا كانت مشكلة تتعلق بالطاقة أيضًا ، لأنني أرى مشكلة مماثلة في لعبة أخرى (ليست لعبة Godot) وبدأت أشك في وجود مشكلة في السائق أيضًا. GTX750 هنا.

ما زلت أتلقى نفس المشكلة أيضًا على Godot v3.0.6 ولا يساعد تنزيل أحدث برامج تشغيل Nvidia في حل هذه المشكلة على الإطلاق. أنا أستخدم بطاقة رسومات Nvidia GTX 750 TI. هل هناك أي طريقة لإصلاح هذه المشكلة؟ أيضًا عندما أقوم بتشغيل لعبتي على متصفح ويب ، لا تظهر مشكلة الوميض على الإطلاق؟

هل تواصل أحد مع nvidia بخصوص هذه المشكلة حتى الآن؟

لدي هذه المشكلة tyguilhermefelipecgs لهذا الفيديو ، بالضبط ما يحدث لي.
أنا في gtx 950. لقد جربت الشيء ذي الحجم الرباعي && ysort ، لكن لم يحالفني الحظ.

ولست متأكدا ما يجب القيام به. كنت بصدد إصدار مشكلة جديدة ولكني كنت أحسب أنني سأقوم بنشرها في هذا بدلاً من ذلك. أنا على Godot v3.0.6 أيضًا

هل جربها أحد مع الإصدار 3.1 alpha مع تفعيل GLES2.0؟ ربما تكون مشكلة في برنامج تشغيل OpenGL3 x nvidia؟

أعتقد أنه سيتعين علي تغيير كيفية رسم الخطوط ، وهذا يوضح مدى سوء الوضع مع دعم برنامج OpenGL ولماذا يلزم الانتقال إلى Vulkan قريبًا.

أيضا ، هل قام أحد باختباره باستخدام عرض GLES2؟

reduz آسف أن الأمر استغرق وقتًا طويلاً. أخيرًا حصلت على 3.1 لترجمة
نعم ، أؤكد أن الوميض لا يزال يحدث في عارض GLES2

لقد أجريت بعض الاختبارات مع هذا ، ولا يمكنني تشغيل أي وميض للبلاط الأسود على مجموعة بلاط بحجم 128 × 128 خلية (رباعي 16).
لست متأكدًا مما إذا كان ذلك يساعد ولكني أعتقد أنه شيء
e: راجع للشغل إذا كان أي شخص يريد مني تحرير بعض أكواد c ++ وإعادة تجميعها لاختبار الأشياء ، فقط lmk
e2: nvm عاد للتو. نعم ، إنه أقل تواترًا

لقد وجدت حلاً مؤقتًا يعمل جيدًا في الواقع. (إذا كان أي شخص سيطلق لعبته قريبًا)

- بالبلاط :

  • قم بإنشاء خريطة مبلطة جديدة وقم بتعيين مقدار المربعات ليكون 40 × 40
  • حدد مجموعة البلاط الأرضية
  • ثم انقر فوق أداة تعبئة الجرافة في شريط الرأس العلوي (المفتاح f ) ، وانقر في أي مكان على شبكة التجانب
  • انتقل الآن إلى ملف -> تصدير كصورة ، وقم بإلغاء تحديد _رسم البلاط وقم بتضمين لون الخلفية_ ، وانقر فوق تصدير.
  • انتقل إلى tinypng.org ، واضغطه (قمت بحفظ 71٪ من حجم الملف).

- في جودو:

  • إضافة عقدة sprite إلى طبقة tilemap الخاص بك.
  • اضبط نسيج الكائن على الصورة المصدرة من التجانب.
  • اضبط خيارات خطوة الشبكة لتناسب نفس حجم الخلية (في حالتي ، كانت 48 × 48)

image

الآن ، يمكنك فقط الضغط على ctrl + d على الكائن والتقاطه. لا يوجد وميض والأداء رائع (يعرض Godot داخليًا ما هو موجود على القماش)

ه: نأمل أن يساعد هذا. إنه غريب بعض الشيء ، لكنه حل (ليس الأفضل ، لكنه شيء)
هـ: لا يزال بإمكانك استخدام طبقات الخرائط الأخرى للأشياء وما إلى ذلك. هذا فقط للأرض لإيقاف الخفقان مع الحفاظ على الأداء الجيد (تمكين ysort على طبقة خريطة الأرض يسقط fps سيئة)

ByTheQuietLake np ، يسعدني! لدي nvidia gtx 950 ويمكنني تأكيد عملها. لم أر أي وميض للبلاط الأسود لأكثر من 20 + ساعة . في المحرر أو في اللعبة. الشيء الوحيد الذي لاحظته هو أن وقت التحميل يزداد بمقدار 20 مللي ثانية (وهو بالكاد لا شيء حقًا) ، ولكن هذا فقط لأن الصورة ضخمة. ومع ذلك ، عند التنقل عبر الخريطة بشخصيتك ، ستشعر بالسلاسة كما لو كانت خريطة tilemap.

لست متأكدا من المرونة. قصة قصيرة طويلة ، فقط قم بإنشاء البلاط الأرضي الخاص بك في البلاط ، وقم بتصديره كصورة ، واستخدمها كعنصر كطفل في خريطة البلاط الخاصة بك. بعد ذلك ، بمجرد أن تجد reduz / nvidia devs / etc إصلاحًا ، ما عليك سوى حذف النقوش المتحركة القديمة واستخدام خريطة tilemap كما تفعل عادةً. يجب أن يكون انتقالًا سهلاً.

نجح الحل أم لا إذا لم يكن لديك nvidia gpu :(

e: هذا الخطأ يحدث فقط مع nvidia gpus bythequietlake

هذه أول مشاركة لي على جيثب ، وأعتذر إذا كان هذا في المكان الخطأ (وجدت هذا الموضوع من جوجل).

لقد واجهت هذه المشكلة مؤخرًا بعد تحويل لعبة من 2.1. يعمل حل Girng بالنسبة لي ، لكنه يبدو صعبًا بعض الشيء. لقد لاحظت أيضًا وجود إزاحة طفيفة بين نسيج عقدة Sprite ، ونسيج خلية tilemap عند الحركة (باستخدام المحلول الخاص به). لم يكن هذا واضحًا باستخدام خريطة أرضية.

أنا على GTX 960. لا يمكنني العثور على أي إعدادات PowerMizer على Windows 10 (من منشور guilhermefelipecg أعلاه). قد يكون ذلك لأنني على نظام Windows ، وقد يكون ذلك من نوع Linux. قرأت أيضًا أعلاه ، حتى هذا لم يصلحها.

قد يكون هذا خارج الموضوع قليلاً ، لكن هل يجب أن أبقى على 2.1 حتى يتم إصلاح ذلك ، أم سأحتاج إلى تجميع "نسخة مخصصة" من Godot؟

أطيب التحيات،

- هارون

نفس السؤال الذي طرحه آرون هنا ، هل لدينا خيارات أخرى؟ هذه مشكلة سيئة للغاية وتجعل Godot غير مناسب للإنتاج ، يرجى إعطائها أولوية أعلى.

هناك شيء واحد وجدته يعمل بالنسبة لي وهو تعطيل HDR في إعدادات المشروع.

هناك شيء واحد وجدته يعمل بالنسبة لي وهو تعطيل HDR في إعدادات المشروع.

ليس بالنسبة لي ، الخيار الوحيد الذي نجح هو ضبط Ysort على ، لكنه ليس خيارًا قابلاً للتطبيق (تعيين حجم الربع على 1)

كنت أواجه هذا أيضًا .. وكنت قادرًا على التكاثر باستمرار في كل مرة أشغل فيها المشهد.
هل حاول أي شخص العبث بإعدادات جودة العرض؟ تحديد Framebuffer Allocation إلى 2D؟

حتى الآن _ يبدو _ قد يكون هذا يعمل ... أو على الأقل جعله يحدث كثيرًا (لم أر الخفقان يحدث مرة أخرى ..._ حتى الآن)

ByTheQuietLake حتى الآن يبدو أنه لا توجد حالات وميض على الإطلاق.

تضمين التغريدة ما الذي حددته لتخصيص الإطارات الاحتياطية؟ يمكن أن يكون إصلاحًا مؤقتًا جيدًا
تحرير: قراءة nvm هذا خطأ ، سأختبر هذا لـ 2D Framebuffer

XNargaHuntress لا يزال الخفقان يحدث لي مع ضبط Framebuffer Allocation على 2D. أشعر أنه يحدث في كثير من الأحيان الآن ، لكن قد يكون ذلك مصادفة.
أنا أستخدم Nvidia GTX 750 Ti على نظام التشغيل Windows 7 x64 ، ومستقر Godot 3.0.6.

تحرير: لقد حاولت فقط تعيين Framebuffer Allocation إلى "2D بدون أخذ العينات". لا تزال تومض.

تحرير 2: يحدث الخفقان أيضًا مع Godot 3.1 alpha باستخدام عارض GLES3. ولكن عند استخدام عارض GLES2 لم ألاحظ أي وميض على الإطلاق.

ربما أكون مخطئًا ، لكن بعد آخر تحديث لبرنامج تشغيل nvidia ، لم أتمكن من رؤية أي وميض حتى الآن. سيختبر بشكل كامل عندما يكون في المنزل اليوم.

GTX 1050TI، Windows 10، Godot 3.1 alpha

تحرير: بعد الكثير من الاختبار ، ظهر مرة أخرى ... لكن القليل جدًا ... ولكن لا يزال هناك

بعد تحديث برنامج التشغيل السابق لم أر المشكلة على الإطلاق لفترة من الوقت الآن. لست متأكدًا تمامًا من التحديث الذي تم إصلاحه ، وربما سيعتمد على وحدة معالجة الرسومات المحددة ، ولكن نعم ...

تذكر الرجال أن برنامج تشغيل GLES2 لا يعرض هذه المشكلة على برنامج Master.

قد يؤدي تعيين تكبير / تصغير الكاميرا إلى (1،1) إلى إصلاح المشكلة بالنسبة لي ، وقد قمت مسبقًا بتعيينها على (0.5 ، 0.5) وكنت أرى ومضات. حتى الآن لا أرى أي وميض. هل يمكن لأي شخص آخر أن يؤكد؟

طالما أن خيار ysort هو OFF ، فأنا أشعر بالخفقان دائمًا.

يوم الإثنين ، 19 نوفمبر 2018 ، الساعة 2:10 مساءً ، كتب mikeleeman [email protected] :

قد يؤدي ضبط تكبير الكاميرا على (1،1) إلى حل المشكلة بالنسبة لي ،
قمت سابقًا بضبطه على (0.5 ، 0.5) وكنت أرى ومضات. حتى الآن لست كذلك
رؤية أي وميض. هل يمكن لأي شخص آخر أن يؤكد؟

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/godotengine/godot/issues/9913#issuecomment-439773424 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/ACv4240No-elY7BK16HKAmxhHrFRaOj4ks5uwj1UgaJpZM4OlRVq
.

mikeleeman لا يزال يحدث على GLES3 مع GTX 960. حاول وضع الإطار المؤقت ثنائي الأبعاد ، خدع الكاميرا ، إلخ. في هذه المرحلة ، أعتقد أن فولكان هو أملنا الوحيد.

لم تقم NVIDIA بإصلاح مشكلة قفل ذاكرة التخزين المؤقت على قرص التظليل. إنه أمر محزن لأن الأشخاص الذين يستخدمون Windows مع بطاقات NVIDIA لا يختبرون إمكانات Godot الكاملة.

لا يهتم معظم البائعين بـ OpenGL مؤخرًا ، والعمل على حل هذا الأمر معقد للغاية ..
أفضل حل بديل في Godot 3.1 في الوقت الحالي هو التبديل إلى OpenGL2 ، حيث يعمل بشكل جيد.
في النهاية ، سيتم إهمال GLES3 بعد ذلك في Vulkan ، حيث نأمل ألا يحدث هذا بعد الآن.

لا يزال يحدث في 3.1alpha مع GLES2 (كما هو موضح في الزاوية اليمنى العليا من هذا gif):
sssaturday5

حل مؤقت وجدته ناجحًا ، والذي يجب أن يوقفنا حتى Vulkan:

  • استخدم عقد Sprite لكل بلاطة أرضية منفصلة. قم بتمكين الالتقاط عند التحرير بحيث يسهل تقليد نفس تخطيط الأرض. بهذه الطريقة في الواقع ليست مشكلة في الأداء وجدت. إنه مجرد مضيعة للوقت ومن الغريب القيام به. من الواضح أنها ليست مثالية ، لكنها تفي بالغرض في الوقت الحالي.

يمكنني أيضًا تأكيد حدوث ذلك على GLES2 أيضًا: / (آخر إصدار b47d4e1ba5d72bac5c2e671d9e4c0ae037a248c0)

هذا ليس قريبًا من عمل صالح. تخسر حرفيًا كل سبب لاستخدام خرائط المربعات في المقام الأول.

هذا ليس قريبًا من عمل صالح. تخسر حرفيًا كل سبب لاستخدام خرائط المربعات في المقام الأول.

نعم ، لكني أعني أنها توقف الوميض وهي فقط للطبقة الأرضية .. ولعبتك تبدو متشابهة تمامًا. لكنني أتفق معك ، فهي لا تستفيد من ميزات tilemap ، لكنني أشعر أنها مقايضة عادلة حتى يتم الإصلاح

لم أعد أرى ومضات بعد الآن وهو أمر غريب لأنني كنت أرى بالتأكيد ومضات عشوائية من قبل لفترة طويلة.

آخر مرة حاولت أيضًا رسم مربعات على لوحة canvasItem مع وظائف draw_rect ، ومحاكاة Tilemap ، واستدعاء update () على canvasItem مرة واحدة فقط ، بحيث يتم رسمها مرة واحدة فقط في بداية البرنامج. من المثير للدهشة أن اللوحة القماشية بها ومضات عشوائية مماثلة أيضًا (ربما أقل تكرارًا؟) ، ولكن فقط عندما يتم تكبير الكاميرا (0.5،0.5) ، ولكن ليس عندما تكون الكاميرا عند (1.1). أعلم أن الأمر يبدو غريبًا ، ربما أسأت فهم شيء ما.

الآن لم تعد توجد الومضات ، لكل من الشخص الذي يستخدم رسم CanvasItem المخصص والأخرى التي تستخدم TileMap الافتراضي من Godot. أشك في تحديث السائق؟ بطاقتي هي Nvdia GeForce GTX 970 ، على windows. ملاحظة جانبية هل يمكن لأي شخص التحقق من إصدار OpenGl المثبت حاليًا؟ سمعت أنه من الأسهل القيام بذلك على نظام Linux.

تحرير: عدم اليقين ليس جيدًا على ما أعتقد ، فأنا بحاجة إلى Vulkan للتأكد من عدم وجود مشاكل.

لقد غيرت كيفية رسمها في عارض OpenGL ES 2.0 ، لذا من المؤكد أنها ستعمل بشكل جيد هناك. في OpenGL ES 3.0 ، من المرجح أن يؤدي أي حل بديل يمكنني التفكير فيه إلى الإضرار بالأداء ، لذلك ستكون الأولوية مكتملة لجعل Vulkan يعمل في أقرب وقت ممكن بعد انتهاء الإصدار 3.1.

يرجى تأكيد ما إذا كان يمكنك عدم فشل ذلك في عارض OpenGL ES 2.0.

reduz لقد اختبرت هنا لبضع دقائق ولم يحدث ذلك. شكرا لإصلاح هذا! :)
ملحوظة:
لا أعرف ما إذا كان الأمر مرتبطًا ، لكن لا يزال بإمكاني رؤية بعض الخطوط البيضاء الأفقية بين البلاط عندما تهتز الكاميرا.

شكرا reduz لإصلاح OpenGL ES 2.0!

tomikeleeman وآخرين:
فيما يلي آخر 3 ملاحظات تصحيح منذ 20 نوفمبر لبطاقات NVIDIA GeForce:
20 نوفمبر و 3 ديسمبر و الصفحة 15 .

المشكلة الوحيدة التي وجدتها والتي قد تكون ذات صلة (غير متأكد) في 12 ديسمبر:

  • [قاتل القاتل 2 الصامت]: هناك فساد خافت في النسيج في اللعبة.
    [200472315]

لقد لاحظت أيضًا أن البعض قد حدث خطأ في خريطة Tilemap الخاصة بي:
capture3

لست متأكدًا من أنه يمكنني فعل المزيد من أجل هذا الإصلاح غير الإصلاح الحالي. بعد إصدار 3.1 ، لن يكون هذا الخطأ موجودًا على الأرجح على Vulkan ، ويجب أن يختفي من برنامج ES2 الآن.

باختبار ألفا 4 ، رأيت ذلك باستخدام GLES2 و GLES3. لا تظليل ، لا شيء خاص على وجه الخصوص. فقط خرائط البلاط.
test

securas هل تستخدم الكاميرا مع التكبير؟

لا

يوم السبت 29 ديسمبر 2018 الساعة 12:35 صباحًا Guilherme Felipe de CG da Silva <
[email protected]> كتب:

securas https://github.com/securas هل تستخدم الكاميرا مع التكبير / التصغير؟

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/godotengine/godot/issues/9913#issuecomment-450378016 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/ACv425NmiZKRUJHDzxg0NPB-PszWJaa2ks5u9jpGgaJpZM4OlRVq
.

securas تبدو هذه مشكلة مختلفة ، إنها مشكلة تتعلق بصحة البكسل أكثر من مشكلة وميض البلاط.

@ akien-mga عادل بما فيه الكفاية ... يبدو أنه يحدث فقط لخرائط البلاط لذلك اعتقدت أنها تنتمي إلى هنا.

@ gcardozo123 يبدو لي #

سينتقل هذا إلى 3.2 حيث لا يمكن فعل أي شيء آخر في الوقت الحالي. آمل أيضًا أن تصلح nvidia هذا الأمر إلى الأبد ، لقد اتصلت بهم مباشرة للتأكد من إصلاح ذلك من جانبهم أيضًا. مع إعادة كتابة Vulkan ، نأمل ألا يحدث هذا بعد الآن ولكن في غضون ذلك ، يرجى استخدام GLES2.

آسف لم أقصد أن أغلق

هل هناك محركات ألعاب أخرى مفتوحة المصدر تستخدم GLES3 بها فئة tilemap أو بعض العروض التي يمكن النظر إليها؟ كنت أنظر فقط إلى التواريخ ، وقد مر أكثر من 530 يومًا ، وسوف تتراجع لفترة أطول: /

لقد تواصلت مع أحد مطوري godot بشأن الخلاف (@ bojidar-bg) ، وتلقيت مساعدة كبيرة. كنت أحاول إظهار المشكلة ولكن لم أتمكن من ظهور البلاط الأسود أثناء التسجيل في OBS. ثم أوصاني بتغيير بعض الإعدادات في لوحة تحكم NVIDIA.

معلومات: fa7329f6485058fde30b8e2bfe26291dfbfc4434 ، GLES3 ، W10-64bit ، GTX950

  • انتقل إلى NVIDIA Control Panel
  • انقر فوق Manage 3D settings
  • قم بالتمرير لأسفل إلى وضع إدارة الطاقة ، الطاقة المثلى إلى أفضل أداء
    image
  • انقر فوق تطبيق

لم أر عنوانًا أسود واحدًا حتى الآن (تم إعادة تحميل اللعبة حوالي 20 مرة ، وستستمر في الاختبار حتى تعود الأبقار إلى المنزل). حتى الان جيدة جدا! أتمنى أن يساعدك هذا ، وشكرًا عظيمًا لبوجيدار!

جيرنج: رأيت هذه الظاهرة نفسها في الصادرات. هذا هو المكان الذي يكمن فيه قلقي أكثر. لا ينبغي أن نطلب من المستخدمين النهائيين تغيير إعدادات وحدة معالجة الرسومات الخاصة بهم حتى لا تختفي المربعات بشكل متقطع. هل لم تجرب الإصدار 3.1 بيتا الأحدث مع اختراق بلاط nvidia؟

  • قم بالتمرير لأسفل إلى وضع إدارة الطاقة ، وقم بتغييره من _الطاقة المثلى_ إلى تفضيل أقصى أداء

لا يعني هذا خطأ السائق ، لست متأكدًا من كيفية عمل المحرك مع كل خطأ محتمل في السائق.

@ OvermindDL1 نعم ، ذكر reduz أنه تواصل مع مطوري nvidia مباشرة ، وهو أمر يحظى بتقدير كبير! أنا سعيد بحل وضع إدارة الطاقة من أجل التنمية . أعتقد أنه يجب أن يوقفنا حتى تصلحها nvidia بأنفسهم.

agameraaron أنا فقط استخدم gles3 (اللعبة مرتبطة بجسيمات GPU). آسف ، لا يمكن التعليق على اختراق البلاط. لكن سمعت أنه يعمل

مما ناقشته للتو مع ممثلي nv ، يقولون إنهم لا يستطيعون ملاحظة هذه المشكلة بعد الآن. هل يمكنكم تجربة أحدث إصدارات برنامج التشغيل ، وإذا فشلت ، قم بالإبلاغ عن مزيد من المعلومات حول أجهزتك؟ (طراز GPU ، برنامج التشغيل المثبت ، إعدادات إدارة الطاقة)؟

تم اختبار 419.17 ). يحدث وميض البلاط الآن مع أوضاع الطاقة التالية: تفضل الأداء الأقصى والأمثل والتكيف .

GTX 950 ، W10 ، GLES3

  • عند فتح استوديو OBS ، يختفي الخفقان

reduzgirngxsellier
GTX 1070 ، GLES2 ، W10
أحدث سائق 419.35
لا وميض بغض النظر عن وضع الطاقة المستخدم 👍

يبدو أن GLES3 يعمل أيضًا .. وجدت أيضًا هذه المشكلة في تجاوز سعة المكدس:
وميض شاشة gles2

GTX 1060 ، W10
مع نفس المحرك الموضح أعلاه (419.35) ، لا يزال الخفقان يحدث في كل من GLES2 و 3.
كل ما عليك فعله هو النقر في واجهة المستخدم والتمرير فوق عناصر التحكم ، حيث إن إعداد إعادة الرسم الافتراضي الآن هو "على التغييرات" ، والتي يمكن تغييرها بالنقر فوق الدائرة في الزاوية اليمنى العليا.

استخدمت المشروع القديم الذي نشرته في https://github.com/godotengine/godot/issues/9913#issuecomment -364707061 ، كل شيء لا يزال يحدث - وميض الملصق وخريطة البلاط والحروف ممتدة عبر بعض البلاط بطريقة غريبة.

Screenshot_20190322_021011

جرب هذا الخيار.

أنا على علم بهذا الخيار ، والذي يعمل فقط في GLES2

reduzgirngxsellier
GTX 1070 ، GLES2 ، W10
أحدث سائق 419.35
لا وميض بغض النظر عن وضع الطاقة المستخدم 👍

يبدو أن GLES3 يعمل أيضًا .. وجدت أيضًا هذه المشكلة في تجاوز سعة المكدس:
وميض شاشة gles2

اقترح التعليق أعلاه أن المشكلة لم تعد موجودة.

MennoMax أنت محق ، لا يزال الخفقان يحدث .. لكن الحل البديل لـ GLES2 يعمل ، آمل أن يأتي دعم Vulkan قريبًا 🙏

مشكلة @ gavriil07 هي أن الحل البديل gles2 يعني أنه لا يمكنك استخدام جزيئات
أيضًا ، تم إصلاح الخفقان على gles3 عندما نشرت في 11 فبراير (مع ضبط وضع الطاقة على أفضل أداء). الآن ، عاد الوميض ، ويحدث في جميع خيارات وضع الطاقة الثلاثة مع برامج التشغيل المحدثة الجديدة. غير منطقي ، أحد إصدارات برامج التشغيل الخاصة بهم يحتوي على وميض ثابت على الأداء الأقصى المفضل ، والآن لم يتم إصلاحه على برامج التشغيل الجديدة.

girng ما
reduz هل لديك الوقت المقدر

@ gavriil07 إذا كانت اللعبة تستخدم GLES3 (مع جزيئات وحدة معالجة الرسومات) ، فلن يكون حلًا بديلًا لهم لاستخدام gles2. السبب بعد ذلك ، لا يتم دعم جزيئات gpu

بالرغم من ذلك ، لا يزال من الممكن استخدامgirng CPUParticles في GLES2 ؛ إنها كافية للعديد من حالات الاستخدام (وهذا صحيح بشكل خاص في الألعاب ثنائية الأبعاد الأبسط). يرجى إبقاء المناقشة حول الموضوع: قليلاً_ابتسامة_الوجه:

لا يزال من الممكن استخدام جسيمات CPUP في GLES2 ؛ إنها كافية للعديد من حالات الاستخدام (وهذا صحيح بشكل خاص في الألعاب ثنائية الأبعاد الأبسط). يرجى إبقاء المناقشة على الموضوع

أنا أتحدث عن جزيئات GPU ، وليس وحدة المعالجة المركزية

شاهدت مشاركة على https://www.reddit.com/r/godot/comments/9ljor3/psa_tilemap_flickering_possible_fix/ مكتوبة منذ أشهر تقول "حاول تعطيل HDR في إعدادات المشروع". (التقديم -> الجودة -> العمق -> Hdr)

لقد جربت ذلك في مشروع GLES3 ويبدو أنه يعمل حتى الآن بالنسبة لي (Nvidia 970 الإصدار 415.27 ، Linux Mint). آسف إذا كانت هذه رسالة متكررة.

أستطيع أن أقول أن هذا الخطأ موجود لبرنامج تشغيل GLES2 على جهاز Nvidia gtx760 (Windows 10 x64). الفيديو أدناه:

https://www.youtube.com/watch؟v=TM1BN4uwMfA
أول حالة تحدث في الفيديو هي 0:36 ، وتحدث مرة أخرى في غضون 5 ثوانٍ تقريبًا.

يبدو أن إصلاح GLES2 يخفف من المشكلة بالنسبة لي.

نجح تعطيل HDR في إعداد المشروع بالنسبة لي. شكر!

ويندوز 10 برو 64 بت
برنامج تشغيل nVidia 430.39.39

جودو 3.1.1 مستقر
برنامج OpenGL ES 2.0 Renderer: GeForce GTX 1080 / PCIe / SSE2

يحدث الخفقان.

يؤدي إيقاف تشغيل HDR في الغالب إلى إزالة الوميض ، لكنه يعود في بعض المواقف التي لم أتمكن من تضييق نطاقها أكثر.

نظام التشغيل Windows 10 Home
Godot 3.1 مستقر
GTX 1070 ، سائق 430.86
GLES 3.0 مع تشغيل HDR ، وميض ، وإيقاف تشغيله يصلح.

اختبرت ذلك باستخدام شبكة مخصصة (Node2D مع نقوش متحركة كأطفال)

جودو 3.1.1 مستقر
نظام التشغيل Windows 10
سائق GTX1080 430.86.1
GLES 3.0 مع إيقاف تشغيل HDR ، يستمر الوميض ، عند تشغيل "يفضل الأداء الأقصى" ، يبدو أنه يختفي (شكرًا لمطور الحل الجزئي) يسعدني أن نرى المطورين على دراية بهذا ، يبدو أن مشكلة nvidia أكثر من Godot. أي 1 مع بطاقات amd بها هذه المشكلة؟

GLES 3.0 مع إيقاف تشغيل HDR ، يستمر الوميض ، عند تشغيل "يفضل الأداء الأقصى" ، يبدو أنه يختفي (شكرًا لمطور الحل الجزئي) يسعدني أن نرى المطورين على دراية بهذا ، يبدو أن مشكلة nvidia أكثر من Godot. أي 1 مع بطاقات amd بها هذه المشكلة؟

لا تحدث مشكلة مع بطاقات AMD (يقول العنوان مع برامج تشغيل nvidia راجع للشغل)

وجود هذه المشكلة في Godot 3.1.1 على OpenGL ES 3.0 Renderer: GeForce GTX 1060 6GB/PCIe/SSE2 .
ليس لدي خريطة tilemap ، فقط مجموعة مخصصة من draw_texture() . أحصل على نقاط وميض عشوائية ، لكن في بعض الأحيان يكون هناك خلل في ملء الشاشة تقريبًا.

في هذه المرحلة ، أعتقد أن Vulkan سيكون الحل لهذه المشكلة بشكل نهائي.

كنت أتأرجح بشكل غريب في مشروعي أيضًا ، ولكن الإعداد Gles 2 Use Nvidia Rect Flicker Workaround أصلحه بالرغم من ذلك.

Screen record from 2019-08-01 19 18 43

يمكن إعادة الإنتاج في الإصدار 3.1.1 الثابت باستخدام GTX 980.
يؤدي تعطيل HDR إلى إصلاح المشكلة بالنسبة لي.

مجرد تحديث ما زلت أرى البلاط ينبثق وقد جربت كل شيء مذكور هنا حتى الآن. لا يسعني إلا أن آمل أن يتمكن Vulkan من إصلاحه ، ولكن سيكون من الجيد أن يتمكنوا من اكتشافه مقابل 3.2 أيضًا.

لقد كنت إيجابيًا حقًا مؤخرًا ، لكن هذا الخطأ يرهقني حقًا ويصبح ضارًا جدًا بسير عملي (لقد جربت كل شيء). لدرجة أنني أخشى الضغط على F5 بسبب وميض البلاط الأسود الذي لا مفر منه. يمكنني أن أتحمل الخفقان مرة واحدة في القمر الأزرق أو شيء من هذا القبيل ، لكن الخفقان شيء ثابت الآن. أنا أحب جودو ، ليس هناك عودة إلى الوراء الآن ، لكن الأمر أصبح محبطًا للغاية.

لا أحب كتابة منشورات كهذه لأنها غير مفيدة وتأتي على شكل متذمر ، لكنني لا أعرف ماذا أقول / أفعل. في الوقت نفسه ، أريد أن يعرف المطورون الأساسيون كيف يؤثر هذا الخطأ على تجربة Godot. 😭 يرجى مطوريreduz / core إذا كان بإمكانك إلقاء الضوء على حالة هذا الخطأ وما هو الحل المحتمل (Vulkan؟) ، فسيكون ذلك رائعًا!

نظام التشغيل Windows 10 Home
إصدار برنامج تشغيل Geforce GTX 1060 440.97
Godot 3.1.1 مستقر باستخدام GLES3
لقد جربت بعض الاقتراحات المدرجة هنا (تعطيل HDR ، والنقر على الخيار "Gles2 use nvidia rect flicker workaround" ، والتلاعب بإعدادات الأداء الخاصة بي) ولم يظهر أي منها لحل المشكلة

نفس الشيء هنا ، الحصول على الخفقان. لديك 3 خرائط بلاط ، واحدة لمستوى المياه وواحدة لمستوى الأرض وواحدة للسحب مع تشغيل الفرز على شكل Y.

نظام التشغيل Windows 10 Home
أحدث برنامج تشغيل Geforce GTX 1060
تم تجميع Godot 3.2 beta من الأسبوع الماضي ، باستخدام GLES3
gdscript ، إيقاف تشغيل HDR

شاهد بلاطات الماء تنبثق بشكل متقطع أو وميض.

محدث:

يبدو أنه يتعين علي استخدام GLES2 والنقر فوق عنصر "NVIDIA flicker fix" للحصول على وميض يختفي. هل يمكن تكييف هذا الإصلاح مع GLES3 بأي فرصة؟

لقد اشتريت للتو جهاز ASUS RTX2060 جديدًا من شأنه أن يصحح المشكلة ، لكن للأسف ، لم يكن الأمر كذلك. يستمر الوميض. سنقوم بتجربة بناء مع فرعي 3.2 و VULKAN.

نظام التشغيل Windows 10
RTX 2060 أحدث برنامج تشغيل
Godot 3.1.1

يا إلهي
أحاول كل شيء ، لكنه لا يزال موجودًا ، ولعبتي تعمل مع GLES2 حتى أنني أقوم بتنشيط "2d / gles2_use_nvidia_rect_flicker_workaround" ، لكن لا تزال تومض.
أنا أحب Godot حتى أنا أحب Godot الإصدار الجديد 3.1 أكثر ، لكن من فضلك حل هذه المشكلة.

الخبر السار هو أن VULKAN build يصحح هذه المشكلة. لذلك لا أعرف ما إذا كان سيتم تصحيح ذلك في الفرع 3.x.

إذن متى وصل Godot مع VULKAN المبني؟

على حد علمي من التعليقات أعلاه ، لن يتم إصلاح هذا في Godot 3.x ، مما يمنع أي مشروع قائم على tilemap مع GLES 3. يوضح المطورون أن هذه مشكلة NVIDIA ، لذا لا يوجد الكثير يمكنهم القيام به حيال ذلك . يمكنك إما الانتظار لمدة 4.0 مع Vulkan (ما لا يقل عن 6 إلى 8 أشهر) ، الأمر الذي سيستغرق بعض الوقت ، أو البدء بـ 3.x وتأمل في الترقية بسهولة إلى 4.0. أشك في أن الترقية ستكون سهلة ، خاصة إذا كنت تستخدم ميزات GLES 3 مثل التظليل الرائع وجزيئات وحدة معالجة الرسومات.
كان الحل البديل الخاص بي هو استخدام التصنيف y على خيارات خريطة التليماب. يبدو أن هذا قد قلل من تكرار المشكلة. ومع ذلك ، لا يزال لدي لاعبون يشكون من أن أجزاء من عالم اللعبة ستختفي أحيانًا.

إذا كانت مشكلة NVIDIA ، فلماذا لا تحدث ، على سبيل المثال ، الوحدة؟ (انا فقط أتسائل)

المكتبات التجارية مقابل المكتبات مفتوحة المصدر ، على ما أعتقد. تحقق من السابق
مشاركات المطورين.

الأحد، 12 يناير 2020، 21:33 سيرغي Kospanov [email protected]
كتب:

إذا كانت مشكلة NVIDIA ، فلماذا لا تحدث ، على سبيل المثال ، الوحدة؟ (مجرد
يتساءل)

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/godotengine/godot/issues/9913؟email_source=notifications&email_token=AAV7RW2ZZLY7ZYQ46RUK7KDQ5ME3HA5CNFSM4DUVCVVKYY3PNVWWK3TUL52HS4DFVREXG43TUL52HS4DFVREXG43TUL52HS4DFVREXG43TUL52HS4DFVREXG43TUL52HS4DFVREXG43
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/AAV7RWYIXVBYAYGZ3VLSPF3Q5ME3HANCNFSM4DUVCVVA
.

securas هذا ليس صحيحًا ، لأن العديد من أطر العمل مفتوحة المصدر الأخرى لا تعاني من هذه المشكلة (حتى لو كانت تستخدم OpenGL للعرض).

هذا مجرد خطأ يصعب تشخيصه ، ولا يوجد أحد على استعداد حاليًا لتخصيص الوقت له.

هذا مجرد خطأ يصعب تشخيصه ، ولا يوجد أحد على استعداد حاليًا لتخصيص الوقت له.

للتوضيح ، الفهم الحالي هو أننا نواجه خطأ في محركات Nvidia. يتم تشغيله من خلال الطريقة التي نستخدم بها OpenGL API ، وإذا لم تواجه المشاريع الأخرى نفس المشكلة ، فذلك لأنهم على الأرجح يستخدمون OpenGL بشكل مختلف ، أو فهموا سبب حدوث الخطأ وكتبوا حلولًا لمنعه (كما فعلنا مع الخيار لـ GLES2 ، على حساب الأداء).

الطريقة التي نستخدم بها واجهة برمجة التطبيقات ، على حد فهمنا ، مناسبة تمامًا وفقًا لمعايير OpenGL الخاصة. لكن أخطاء السائق تعني أنه حتى الاستخدام القانوني لواجهة برمجة التطبيقات يمكن أن ينتج عنه نتائج إشكالية.

خطأي. اسف بشأن ذلك. لدي القليل من الفهم لـ
تفاصيل التنفيذ.

يوم الأحد 12 يناير 2020 الساعة 22:46 Rémi Verschelde [email protected]
كتب:

هذا مجرد خطأ يصعب تشخيصه ، ولا
يرغب المرء حاليًا في تخصيص الوقت فيه.

للتوضيح ، الفهم الحالي هو أننا نصطدم بسائقي Nvidia
خلل برمجي. يتم تشغيله بالطريقة التي نستخدم بها OpenGL API ، وإذا كانت هناك مشاريع أخرى
لا يواجهون نفس المشكلة ، لأنهم على الأرجح يستخدمون OpenGL
مختلفة ، أو فهمت سبب حدوث الخطأ وكتبت حلولاً لها
منعه (كما فعلنا مع خيار GLES2 ، بتكلفة
أداء).

الطريقة التي نستخدم بها واجهة برمجة التطبيقات ، حسب فهمنا ، مناسبة تمامًا مثل
حسب برنامج OpenGL المحدد. لكن أخطاء السائق تعني أنه حتى الاستخدام القانوني
من API يمكن أن تنتج نتائج إشكالية.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/godotengine/godot/issues/9913؟email_source=notifications&email_token=AAV7RW2U4Q6NE3R62ME75GDQ5MNJVA5CNFSM4DUVCVVKYY3PNVWWK3TUL52HS4DFVREXG43TUL52HS4DFVREXG43
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/AAV7RW4WGXFM7MQZKAQJ4X3Q5MNJVANCNFSM4DUVCVVA
.

قد يكون هذا بسبب المخازن المؤقتة للقمة التي يتم إعادة استخدامها حاليًا عدة مرات لكل إطار (وهو ما قد يتسبب أيضًا في حدوث مشكلات في الأداء). أي يتم استخدام المخزن المؤقت للقمة لرسم كائن واحد ، وتغييره في منتصف الطريق لبدء الرسم التالي. أنا أحقق.

أظن أن التجميع المناسب ثنائي الأبعاد سيحل هذه المشكلة والأداء ثنائي الأبعاد.

لا يبدو أنها قضية Nvidia. يحدث هذا أيضًا لي ولصديق (AMD و Intel ، على التوالي) ، ومن المفارقات أنه لا يحدث لصديقي الآخر ، الذي يستخدم Nvidia. كل ما هو محدد في هذا الموضوع يحدث لي ولصديقي Intel.

لدي هذه المشكلة على Intel HD Graphics 620 مدمج على الكمبيوتر المحمول. التبديل إلى GLES2 يصلح لي. شيء آخر بالنسبة لي هو أنه يبدو أنه يحدث فقط مع تشغيل المصابيح ثنائية الأبعاد

مثير للاهتمام - سأحتاج إلى التحقق مما إذا كانت الإضاءة مضاءة أيضًا

آسف للإبلاغ عن وجود هذا في المشهد الخاص بي ، لكن إزالته لم يكن له أي تأثير. بالنسبة لي ، يبدو الأمر أكثر بسبب كمية المربعات الموجودة على خريطة البلاط - من يدري

لقد قمت بتجربة مثيرة للاهتمام بالأمس - لقد أنشأت نفس الخريطة باستخدام TILED وقمت باستيرادها من خلال مستورد VNEN's TILED ولا يوجد وميض - لذلك يقودني هذا إلى الاعتقاد بأنه شيء آخر في المشهد ، أو طريقة الإعداد خريطة tilemap - لذا أقوم ببعض المزيد من الأبحاث وسأقدم تقريرًا

FWIW ، دائمًا ما تستخدم Tiled فقط وما زلت أواجه المشكلة.

jonbonazza أنا آسف لسماع ذلك - يجعلني أشعر أنه لا أمل في هذا حتى وصول 4.0 - أو أستخدم GLES2 الذي أفضل عدم استخدامه

وجدت نفسي أواجه هذه المشكلة أيضًا. هل لا يزال قائما عندما يتم تجميع البرنامج وتشغيله كملف تنفيذي ، وليس في المحرر؟

هل لا يزال قائما عندما يتم تجميع البرنامج وتشغيله كملف تنفيذي ، وليس في المحرر؟

نعم ، حيث أن رمز العرض بين المحرر ونموذج تصدير الإصدار متطابق.

لدي جهاز كمبيوتر: i3 2120 ، gt630.
يعمل كل شيء على هذا الكمبيوتر بشكل مثالي. على جهاز الكمبيوتر الآخر: ryzen 1600 ، gtx1060. وميض البلاط كالمجانين ... كلاهما يعمل بنظام Windows 10 pro x64.

اسم السائق: GLES2
Gles 2 استخدم حل Nvidia Rect Flicker: تشغيل
يعمل 1060 الخاص بي في المتوسط ​​30 ~ 50 إطارًا في الثانية
في انتظار فولكان ...

قد يرغب أي شخص لديه هذا في GLES2 في تجربة تصميمات الاختبار التي نجريها على # 37349. من الممكن أنه قد يساعد لأنه يستخدم طريقة مختلفة لرسم الجذور.

وجود نفس المشكلة. GTX 1060 6 جيجا بايت و Ryzen 7 1700X. يؤدي تمكين cell_y_sort إصلاحه بالنسبة لي ، ولكنه يتسبب في مشكلات كبيرة في الأداء (انخفاض معدل الإطارات في الثانية). نفس الشيء عند تعيين cell_quadrant_size إلى 1.

فقط للسؤال مرة أخرى ، هل يمكن لأي شخص تجربة الإصدار التجريبي 3.2.2 مع تعيين use_batching على تشغيل؟ هذه المرة أيضًا ، قم بتعيين use_nvidia_workaround على تشغيل أيضًا.

لسوء الحظ ، لم يختبرها أي شخص يعاني من مشكلة الوميض منذ تعليقي السابق: محبط: (المختبرين المشاغبين) ، ومنذ ذلك الوقت يوجد الآن مسار احتياطي للطوائف الفردية ، باستخدام الطريقة القديمة التي قد تعيد طرح المشكلة

ومع ذلك ، إذا تم علاجه عن طريق التجميع وحل nvidia ، فسوف يؤكد أن طريقة الرسم الموحدة هي سبب مشاكل الوميض ، ويمكن إزالتها ، وبالتالي علاج المشكلة إلى الأبد.

لذلك قمت للتو بتنزيل الإصدار 3.2.2. بيتا 1 واستخدام Driver Name: GLES2 مع Use Batching و Gles 2 use Nvidia Rect Filcker Workaround يبدو أنه يحل المشكلة. على الرغم من أنني لم أختبرها لفترة طويلة جدًا حتى الآن (منذ الخفقان على 3.2.1 فقط بعد بضع دقائق ، على الأقل بالنسبة لي).

لذلك قمت للتو بتنزيل الإصدار 3.2.2. بيتا 1 واستخدام Driver Name: GLES2 مع Use Batching و Gles 2 use Nvidia Rect Filcker Workaround يبدو أنه يحل المشكلة. على الرغم من أنني لم أختبرها لفترة طويلة جدًا حتى الآن (منذ الخفقان على 3.2.1 فقط بعد بضع دقائق ، على الأقل بالنسبة لي).

آه هذا عظيم. كنت أظن أنه سيكون. باستخدام الحل البديل للطرق الفردية ، نعلم أن هذا يعمل ولا يتسبب في وميض. لكن بقية النقوش المتحركة سيتم رسمها باستخدام كود التجميع الذي يرسم باستخدام الأوليات المفهرسة ، وأظن أن هذا قد يحل المشكلة ويبدو أن هذا. : +1:

سألقي نظرة وأرى ما إذا كان بإمكاننا إزالة الطريقة الموحدة القديمة بالكامل من العارض المجمّع ، وهذا من شأنه أن يحل المشكلة إلى الأبد. في هذه الأثناء ، من المحتمل أن تكون مجموعة الحل البديل المجمعة + nvidia التي ستجدها أسرع على أي حال من العارض القديم ، ولا تومض.

نعم إنه بالتأكيد أسرع. باستخدام godot 3.2.1 المستقر مع برنامج التشغيل GLES2 ، وصلت إلى 20 إطارًا في الثانية فقط ، بينما استخدمت godot 3.2.2 beta 1 ، فقد وصلت إلى 60 إطارًا في الثانية بسهولة. لكن لدي فضول:

سألقي نظرة وأرى ما إذا كان بإمكاننا إزالة الطريقة الموحدة القديمة بالكامل من العارض المجمّع ، والتي من المفترض أن تحل المشكلة نهائيًا

هل هذا يعني أنه سيكون هناك إصلاح لـ GLES3؟

نعم إنه بالتأكيد أسرع. باستخدام godot 3.2.1 المستقر مع برنامج التشغيل GLES2 ، وصلت إلى 20 إطارًا في الثانية فقط ، بينما استخدمت godot 3.2.2 beta 1 ، فقد وصلت إلى 60 إطارًا في الثانية بسهولة. لكن لدي فضول:

آه هذا امر جيد! : ابتسامة عريضة:

هل هذا يعني أنه سيكون هناك إصلاح لـ GLES3؟

GLES3 لم أفعل أي شيء حتى الآن. يمكن أن ينتهي بنا المطاف بعمل نسخة مبسطة ومختصرة إلى حد كبير من الدُفعات لمجرد التخلص من شباب GLES3 حتى إصدار 4.x (لكن لا يمكنني تقديم وعود في هذه المرحلة ، هناك الكثير على خارطة الطريق). يجب أن يحل ذلك المشكلة في GLES3 أيضًا إذا حدث هناك.

يمكن أن ينتهي بنا المطاف بعمل نسخة مبسطة ومختصرة إلى حد كبير من التجميع فقط لمدّة رجال GLES3 حتى يتم إصدار 4.x

Pleeease (ما هو النطاق الزمني حتى 4.x ، لوضعه في نصابه؟ أظن أنه عدة أشهر ، إن لم يكن نصف عام)

أعتقد أنه ستكون هناك حاجة إلى إصلاح إذا كان هناك مئات الأشخاص الذين يبلغون عن هذه المشكلة. لا أعتقد أن لدينا ذلك. على الأقل هذا الموضوع لا يوحي به.

ومع ذلك ، إذا كانت هناك بعض الإصدارات التجارية التي تعاني من هذا ، فقد يكون من الجيد مساعدتهم. إذا كان لدي المزيد من الخبرة ، كنت سأغوص في نفسي ، لكنني لا أعرف من أين أبدأ. لقد بدأت للتو في استكشاف كود Godot ، والذي تمت كتابته جيدًا بالمناسبة.

هذا هو المكان الذي سيكون من الجيد أن يكون لديك نظام تصويت للأخطاء الحاسمة التي تحتاج إلى الإصلاح.

تصويتي هو انتظار 4.x ، وتركيز الموارد على ذلك. نحن نعلم أن Vulkan يحل بالفعل هذه المشكلة.

هذا هو المكان الذي سيكون من الجيد أن يكون لديك نظام تصويت للأخطاء الحاسمة التي تحتاج إلى الإصلاح.

من واقع خبرتي ، لا يؤدي التصويت عمومًا إلى إصلاح الأخطاء بشكل أسرع. هذا صحيح في المشاريع التي طورها المجتمع ، ولكن حتى البرامج التجارية المملوكة لها تواجه نفس المشكلة (انظر إلى أداة تعقب ميزة Discord).

صحيح. أنا لا أقترح أنه سيساعد في إصلاحه. سيكون أكثر من مقياس لمدى انتشار المشكلة. أفترض أن عدد الأشخاص المشاركين في هذه المناقشة يمكن أن يكون مقياسًا. على أي حال ، لقد انتهيت كثيرًا من هذا الموضوع ، وسأنتظر بصبر 4.x

أنا أيضًا أواجه المشكلة. أنا لم أواجهها أبدًا عند التشغيل التلقائي بشكل طبيعي. إذا قمت برسم الخريطة يدويًا (وهو ما قمت به في مشروع آخر ، باستخدام نفس خرائط البلاط) لم أواجه هذه المشكلة مطلقًا. ولكن عندما جئت لعرض زنزانة تم إنشاؤها إجرائيًا باستخدام tilemap.set_cellv (...) واجهت المشكلة باستمرار. جميع الاقتراحات ، والاقتراح الوحيد الذي نجح هو استخدام GLES2 مع الحل البديل. هذه مشكلة خطيرة جدا رغم ذلك! فشل عرض الخرائط الأساسية الأساسية. لماذا لا يوجد حل بديل لـ GLES3 بالمناسبة؟ أعرف بعض برامج OpenGL ، لقد قمت بكتابة محرك ألعاب أساسي يقوم بإخراج القوام باستخدام تظليل ولكن ليس أكثر من ذلك. هل يمكن لأي شخص أن يشرح سبب هذا بالضبط؟ آمل أن أفهم. <3

أنا أيضًا أواجه المشكلة. أنا لم أواجهها أبدًا عند التشغيل التلقائي بشكل طبيعي. إذا قمت برسم الخريطة يدويًا (وهو ما قمت به في مشروع آخر ، باستخدام نفس خرائط البلاط) لم أواجه هذه المشكلة مطلقًا. ولكن عندما جئت لعرض زنزانة تم إنشاؤها إجرائيًا باستخدام tilemap.set_cellv (...) واجهت المشكلة باستمرار. جميع الاقتراحات ، والاقتراح الوحيد الذي نجح هو استخدام GLES2 مع الحل البديل. هذه مشكلة خطيرة جدا رغم ذلك! فشل عرض الخرائط الأساسية الأساسية. لماذا لا يوجد حل بديل لـ GLES3 بالمناسبة؟ أعرف بعض برامج OpenGL ، لقد قمت بكتابة محرك ألعاب أساسي يقوم بإخراج القوام باستخدام تظليل ولكن ليس أكثر من ذلك. هل يمكن لأي شخص أن يشرح سبب هذا بالضبط؟ آمل أن أفهم. <3

هناك بالفعل بعض التفسيرات على هذا الموضوع. أفترض أنه في هذه المرحلة لن تكون هناك حلول بديلة أو إصلاحات جديدة لهذه المشكلة حتى الإصدار 4.0 (فولكان) ، ما لم يأتي المجتمع بشيء ما. IMHO على حق المشرفين في عدم القلق من الإصلاح المحتمل أن يكون معقدًا الآن بعد أن أصبح 4.0 في الأفق.

لماذا لا يوجد حل بديل لـ GLES3 بالمناسبة؟

لم ألاحظ ذلك في الواقع ، ربما أذهب في نقل كود الحل إلى GLES3 غدًا. سيكون بطيئًا إذا تمكنا من تشغيله.

لقد حصلت الآن على PR WIP (انظر أعلاه) للحصول على حل بديل لـ GLES3. لدي أيضًا بعض الأفكار لإصلاح طريقة الرسم الموحد ، حيث يبدو أن التظليل معقد للغاية لما هو مطلوب. قد أحتاج إلى بعض المساعدة في اختبار ذلك إذا قمت بإصلاح ، حيث لا يمكنني تكرار الوميض على جهازي.

أعتقد أنه يمكنني المساعدة في ذلك. يجب أن أكون قادرًا على إنشاء Windows مخصص على العلاقات العامة الخاصة بك

أنا الآن أعمل على إعادة كتابة تظليل المسار السريع لمنع الوميض. لدي الآن نموذج أولي متاح للتجربة في # 38628. سأكون ممتنًا للغاية إذا تمكن شخص ما من تجربته من لديه جهاز يعرض وميض ، التعليمات موجودة في العلاقات العامة.

تحديث جيد:

  • يبدو أن الحل البديل GLES3 يعمل بشكل جيد: Partying_face: (_يجب أن يكون في الإصدار التجريبي التالي_) ،
  • ومع ذلك ، لم تساعد التجارب مع تظليل المسار السريع: محبطًا: وبعد هذا الاختبار يبدو أنه من المحتمل استبعاد التظليل باعتباره السبب.

لذا أفكر حاليًا في كونه موقفًا غريبًا فيما يتعلق بفشل ملزم من جانبنا فقط على nvidia ، أو خطأ في السائق (ربما لا أتصور طريقة الرسم هذه ، أو لا تختبرها؟).

على أي حال فإن الخبر السار هو ذلك

  • مع GLES2 مع التجميع ، يجب ألا تشعر بالحاجة إلى استخدام الطريقة الاحتياطية في 99٪ من الألعاب ، وبالتالي لن تحصل على وميض
  • ومع GLES3 ، تم تأكيد عمل nvidia الاحتياطي لمنع الوميض ، وإن كان ذلك بتكلفة أداء.

في هذه المرحلة ، أعتقد أن وقتي سيكون أكثر إنتاجية في الحصول على بعض الدُفعات من العمل في GLES3 ، مما يجعل فرق الأداء موضع خلاف. : +1:

lawnjelly إنه خطأ سائق وكيف يتعامل مع إدارة السلطة. في هذا التعليق يمكنك أن تجد نتائجي.

lawnjelly إنه خطأ سائق وكيف يتعامل مع إدارة السلطة. في هذا التعليق يمكنك أن تجد نتائجي.

أهها! :ابتسامة:

واحدة من المشاكل هي أن هذا الخيط أصبح طويلا جدا الآن! في الواقع ، يعد تتبع واجهة برمجة التطبيقات طريقة جيدة جدًا لتحديد ذلك إذا حصلت على وميض على أجهزتك ، وأنا موافق إذا حصلت على نتائج مختلفة في كل مرة تعيد فيها التتبع الذي يشير إلى خطأ في برنامج التشغيل. : +1:

securas هل سبق لك أن أكدت أن سبب المشكلة في الفيديو الذي نشرته هو خطأ الوميض هذا؟

أرى إطارات مفردة متشابهة من الخلفية السوداء + خطوط بيضاء أفقية في مشروعي الخاص مع كل من ميزة سحب الكاميرا المدمجة ونص كاميرا مخصص ، ولا يوجد أي من الحلول المذكورة (GLES2 ، إصلاح وميض NVIDIA ، تعطيل HDR ، مختلف أنواع مختلفة من تخصيص منفذ العرض) تمنع حدوث ذلك:

tile-glitch

هذا مستقر 3.2.1 ، Windows 10 ، GTX 1080.

يحتوي المشهد على أربع خرائط مقاس 1400 × 800 مكدسة فوق بعضها للخلفية السوداء البعيدة والمتعرجة بالقرب من الخلفية والمقدمة وتصادم الكاميرا.

سأكون ممتنًا جدًا إذا كان بإمكان أي شخص تقديم بعض الأفكار - ستكون كتابة حل بديل قوي جزءًا كبيرًا من وقت المشروع الذي أفضل عدم الالتزام به إذا كان من الممكن تجنبه.

إذا كنت أتذكر بشكل صحيح ، فقد كان ذلك بسبب إيقاف تشغيل التقاط 2d بكسل.

Shfty يبدو في الواقع أنه قد يكون مشكلة مختلفة. يبدو أن هذا قد تم تأكيده إذا لم تقم حلول nvidia بإصلاحه. هل ستكون قادرًا على فتح إصدار جديد ، مع تفاصيل الأجهزة ومشروع إعادة إنتاج دقيقة؟

lawnjelly هذا يبدو عن حق. لقد فتحت # 39720 بأقل مشروع استنساخ يعتمد على المشهد في الصورة المتحركة أعلاه.

تمكنت من حل المشكلة عن طريق دمج المشهد المتأثر داخل عقدة Viewport الخاصة به ، لذلك قمت بتضمين مثال على الإعداد لذلك داخل المشروع أيضًا.

يبدو هذا gif لي مثل المزامنة العمودية / تمزيق الشاشة بطريقة ما.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات