1. 12 Apr, 2019 7 commits
    • Lioncash's avatar
      core/core: Move main process creation into Load() · a4b0a855
      Lioncash authored
      Now that we have dependencies on the initialization order, we can move
      the creation of the main process to a more sensible area: where we
      actually load in the executable data.
      
      This allows localizing the creation and loading of the process in one
      location, making the initialization of the process much nicer to trace.
      a4b0a855
    • Lioncash's avatar
      video_core/gpu: Create threads separately from initialization · 6d055119
      Lioncash authored
      Like with CPU emulation, we generally don't want to fire off the threads
      immediately after the relevant classes are initialized, we want to do
      this after all necessary data is done loading first.
      
      This splits the thread creation into its own interface member function
      to allow controlling when these threads in particular get created.
      6d055119
    • Lioncash's avatar
      core/cpu_core_manager: Create threads separately from initialization. · f2331a80
      Lioncash authored
      Our initialization process is a little wonky than one would expect when
      it comes to code flow. We initialize the CPU last, as opposed to
      hardware, where the CPU obviously needs to be first, otherwise nothing
      else would work, and we have code that adds checks to get around this.
      
      For example, in the page table setting code, we check to see if the
      system is turned on before we even notify the CPU instances of a page
      table switch. This results in dead code (at the moment), because the
      only time a page table switch will occur is when the system is *not*
      running, preventing the emulated CPU instances from being notified of a
      page table switch in a convenient manner (technically the code path
      could be taken, but we don't emulate the process creation svc handlers
      yet).
      
      This moves the threads creation into its own member function of the core
      manager and restores a little order (and predictability) to our
      initialization process.
      
      Previously, in the multi-threaded cases, we'd kick off several threads
      before even the main kernel process was created and ready to execute (gross!).
      Now the initialization process is like so:
      
      Initialization:
        1. Timers
      
        2. CPU
      
        3. Kernel
      
        4. Filesystem stuff (kind of gross, but can be amended trivially)
      
        5. Applet stuff (ditto in terms of being kind of gross)
      
        6. Main process (will be moved into the loading step in a following
                         change)
      
        7. Telemetry (this should be initialized last in the future).
      
        8. Services (4 and 5 should ideally be alongside this).
      
        9. GDB (gross. Uses namespace scope state. Needs to be refactored into a
                class or booted altogether).
      
        10. Renderer
      
        11. GPU (will also have its threads created in a separate step in a
                 following change).
      
      Which... isn't *ideal* per-se, however getting rid of the wonky
      intertwining of CPU state initialization out of this mix gets rid of
      most of the footguns when it comes to our initialization process.
      f2331a80
    • bunnei's avatar
      Merge pull request #2235 from ReinUsesLisp/spirv-decompiler · ea80e2bc
      bunnei authored
      vk_shader_decompiler: Implement a SPIR-V decompiler
      ea80e2bc
    • bunnei's avatar
      Merge pull request #2360 from lioncash/svc-global · 83a2fb3c
      bunnei authored
      kernel/svc: Deglobalize the supervisor call handlers
      83a2fb3c
    • bunnei's avatar
      Merge pull request #2388 from lioncash/constexpr · e2f2155d
      bunnei authored
      kernel: Make handle type declarations constexpr
      e2f2155d
    • bunnei's avatar
      Merge pull request #2387 from FernandoS27/fast-copy-relax · c0b2b702
      bunnei authored
      gl_rasterizer_cache: Relax restrictions on FastCopySurface
      c0b2b702
  2. 11 Apr, 2019 4 commits
  3. 10 Apr, 2019 17 commits
  4. 09 Apr, 2019 11 commits
  5. 08 Apr, 2019 1 commit