Skip to content
Snippets Groups Projects

Resolve "Context Functionality"

Merged Ghost User requested to merge 7-context-functionality into develop
All threads resolved!

Closes #7 (closed)

Edited by Vanessa Karolek

Merge request reports

Merged by Tobias FrischTobias Frisch 3 years ago (May 3, 2021 12:15pm UTC)

Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • A deleted user changed milestone to %First Triangle

    changed milestone to %First Triangle

  • A deleted user added 🍪 ToDo 😶 Critical labels
  • added 1 commit

    Compare with previous version

  • removed 🍪 ToDo label

  • removed 🍪 ToDo label

    • Resolved by Tobias Frisch

      In Context.hpp:

      • Zeile 44 ist noch der Klassen-Name in der Definition! (ist tatsächlich ein Compiler-Fehler, der behoben werden muss)

      In Context.cpp:

      • Zeile 4 bis 6 sollte in die create() Funktion, da es nur darin verwendet wird. Es sollten keinerlei weitere Vulkan-Calls kommen, welche die Validation-Layer-Namen benötigen.
      • Zeile 33 wird zur Laufzeit überprüft, ob validation-layer genutzt werden sollen. Dafür ist kein preprocessor-command in der .cpp-Datei. Ich persönlich hätte auch kein Problem damit sowas in die .cpp zu packen und dafür könnten die Abfragen, Übergaben etc. der Validation-Layer zur Compile-Zeit passieren (würde potentiell auch die globalen Variablen sparen). Am besten wir diskutieren das jetzt und machen es konsistent. Ich denke, beides hat Vorteile.
      • Zeile 134 funktioniert so leider nicht (phyDevice liegt immer auf dem Stack und hat eine valide Addresse), aber man könnte stattdessen max_score überprüfen.
      • Zeile 171 wäre es vermutlich besser das else-if rauszunehmen und die Bedingung in den else-Zweig einzubauen.
      • Zeile 210 bis 233 kann man vermutlich noch was vereinfachen mit std::min().

      Ansonsten noch zu einigen Compiler-Warnungen, die auftreten: Ich denke, ihr habt vor allem online die C-API calls zu z.B. enumerate...() Funktionen gesehen und daher übernommen. Diese geben normalerweise noch ein Result zurück, welches überprüft werden muss. Man kann sich das allerdings sparen, wenn man die vereinfachte Überladung von der HPP nutzt.

      const std::vector<vk::PhysicalDevice>& devices = instance.enumeratePhysicalDevices();
      const uint32_t deviceCount = devices.size();

      ...statt...

      uint32_t deviceCount = 0;
      instance.enumeratePhysicalDevices(&deviceCount, nullptr);
      
      std::vector<vk::PhysicalDevice> devices(deviceCount);
      instance.enumeratePhysicalDevices(&deviceCount, devices.data());

      Das ist an einigen Stellen noch ähnlich und die Variante, direkt einen fertigen vector zu übernehmen sollte meistens weniger Probleme bereiten und spart Code.

      Ansonsten passt es soweit und alles scheint wie gewünscht zu funktionieren.

      Edited by Tobias Frisch
  • Ghost User
  • Vanessa Karolek mentioned in commit 0e8cdfb5

    mentioned in commit 0e8cdfb5

  • added 1 commit

    Compare with previous version

    • Author Contributor
      Resolved by Tobias Frisch

      @tfrisch Wir haben soweit versucht deine Anmerkungen umzusetzen. Bei einer Sache waren wir uns aber noch unsicher, und zwar bei den queue priorities in Zeile 222. Eigentlich hatten wir die bzgl. der vulkan.h so definiert z.B. float queuePrios[] = { 1.0f, 1.0f, 1.0f, 1.0f }; und dann deviceQueueCreateInfo.pQueuePriorities = queuePrios; Das führt allerdings in der Verwendung mit der vulkan.hpp zu validation errors. Wenn man das mit einem new löst, wie in Z.222, gibt es keine Validation errors, aber wir konnten das dann auch nicht mehr deleten, was uns bei der Lösung nicht so gefällt. Hast du da eine Idee/einen Tipp?

  • Vanessa Karolek marked this merge request as ready

    marked this merge request as ready

  • Vanessa Karolek requested review from @tfrisch

    requested review from @tfrisch

  • Ghost User added 1 commit

    added 1 commit

    Compare with previous version

  • Ghost User added 9 commits

    added 9 commits

    Compare with previous version

  • Ghost User added 1 commit

    added 1 commit

    Compare with previous version

  • Tobias Frisch resolved all threads

    resolved all threads

  • Tobias Frisch approved this merge request

    approved this merge request

  • Tobias Frisch added 2 commits

    added 2 commits

    Compare with previous version

  • Tobias Frisch mentioned in commit 97cfabc3

    mentioned in commit 97cfabc3

  • merged

  • Please register or sign in to reply
    Loading