Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | renderer_base: Make Rasterizer() return the rasterizer by reference | Lioncash | 2018-08-04 | 1 | -2/+2 |
| | | | | | | | All calling code assumes that the rasterizer will be in a valid state, which is a totally fine assumption. The only way the rasterizer wouldn't be is if initialization is done incorrectly or fails, which is checked against in System::Init(). | ||||
* | video_core: Eliminate the g_renderer global variable | Lioncash | 2018-08-04 | 2 | -8/+9 |
| | | | | | | | | | | | | | | We move the initialization of the renderer to the core class, while keeping the creation of it and any other specifics in video_core. This way we can ensure that the renderer is initialized and doesn't give unfettered access to the renderer. This also makes dependencies on types more explicit. For example, the GPU class doesn't need to depend on the existence of a renderer, it only needs to care about whether or not it has a rasterizer, but since it was accessing the global variable, it was also making the renderer a part of its dependency chain. By adjusting the interface, we can get rid of this dependency. | ||||
* | nvhost_gpu: Added checks to ensure we don't read past the end of the entries when handling a GPU command list. | Subv | 2018-07-31 | 1 | -3/+6 |
| | |||||
* | nvhost_ctrl_gpu: Only read the input parameters if they are actually there. | Subv | 2018-07-31 | 1 | -3/+11 |
| | | | | Passing nullptr to memcpy is undefined behavior. | ||||
* | service/nvdrv: Take std::string in Open() by const reference | Lioncash | 2018-07-25 | 2 | -2/+2 |
| | | | | | | | | | Avoids copies from being made, since the string is only ever used for lookup, the data is never transfered anywhere. Ideally, we'd use a std::string_view here, but devices is a std::unordered_map, not a std::map, so we can't use heterogenous lookup here. | ||||
* | service/nvdrv: Use std::move where applicable | Lioncash | 2018-07-25 | 1 | -3/+5 |
| | | | | | | | Avoids unnecessary reference count increments and decrements. In one case, we don't need to make a shared_ptr copy at all, just to call a member function. | ||||
* | GPU: Implement the NVGPU_IOCTL_CHANNEL_KICKOFF_PB ioctl2 command. | Subv | 2018-07-21 | 3 | -6/+34 |
| | | | | | This behaves quite similarly to the SubmitGPFIFO command. Referenced from Ryujinx. Many thanks to @gdkchan for investigating this! | ||||
* | Merge pull request #717 from lioncash/explicit | bunnei | 2018-07-20 | 3 | -3/+3 |
|\ | | | | | hle/service: Make constructors explicit where applicable | ||||
| * | hle/service: Make constructors explicit where applicable | Lioncash | 2018-07-19 | 3 | -3/+3 |
| | | | | | | | | | | Prevents implicit construction and makes these lingering non-explicit constructors consistent with the rest of the other classes in services. | ||||
* | | nvdrv: Take std::string by const reference in GetDevice() | Lioncash | 2018-07-19 | 1 | -1/+1 |
|/ | | | | | This is only ever used as a lookup into the device map, so we don't need to take the std::string instance by value here. | ||||
* | vi: Partially implement buffer crop parameters. | bunnei | 2018-07-18 | 2 | -3/+7 |
| | |||||
* | NvOsGetConfigU32 production impl | David Marcec | 2018-07-10 | 1 | -17/+2 |
| | | | | | Settings are only used when RMOS_SET_PRODUCTION_MODE is set to 0. If production mode is set, the error code 0x30006 is returned instead | ||||
* | nvhost_ctrl: Fix NvOsGetConfigU32 for Snipper Clips. | bunnei | 2018-07-08 | 1 | -1/+1 |
| | |||||
* | Update clang format | James Rowe | 2018-07-03 | 6 | -27/+27 |
| | |||||
* | Rename logging macro back to LOG_* | James Rowe | 2018-07-03 | 8 | -50/+50 |
| | |||||
* | GPU: Remove a surface from the cache when its backing memory is being unmapped from the GPU's MMU. | Subv | 2018-07-01 | 1 | -0/+5 |
| | |||||
* | nvmap: Return the address of the nvmap object when Freeing it for the last time. | Subv | 2018-07-01 | 2 | -4/+11 |
| | | | | This behavior is confirmed by reverse engineering. | ||||
* | Build: Fixed some MSVC warnings in various parts of the code. | Subv | 2018-06-20 | 1 | -1/+2 |
| | |||||
* | nvdrv/devices/nvidia_ctrl_gpu : add IoctlCommands with their params (#524) | greggameplayer | 2018-06-06 | 2 | -0/+53 |
| | | | | | | | | | | | | * add IoctlCommands with their params in nvidia_ctrl_gpu.h * add function related to the changes done previously * fix clang-format * delete trailing whitespace * correct mistake | ||||
* | Nvdrv/devices/nvhost_gpu : Add some IoctlCommands with their params (#511) | greggameplayer | 2018-06-04 | 1 | -0/+47 |
| | | | | | | | | | | | | | | * Add some IoctlCommand with their params to nvhost_gpu * fix clang-format * delete trailing whitespace * fix some clang-format * delete one other trailing whitespace * last clang-format fix | ||||
* | Merge pull request #484 from mailwl/nvhost-nvdec | bunnei | 2018-06-03 | 3 | -0/+72 |
|\ | | | | | Services/nvdrv: add '/dev/nvhost-nvdec' device | ||||
| * | Services/nvdrv: add '/dev/nvhost-nvdec' device | mailwl | 2018-05-30 | 3 | -0/+72 |
| | | |||||
* | | nvhost_ctrl: Stub out IocCtrlEventRegister. | bunnei | 2018-05-30 | 2 | -0/+10 |
| | | |||||
* | | nvhost_ctrl: Stub out IocCtrlEventWaitAsyncCommand. | bunnei | 2018-05-30 | 2 | -5/+9 |
|/ | |||||
* | NvOsGetConfigU32 should return null instead of 0 for default output | David Marcec | 2018-05-27 | 1 | -1/+1 |
| | |||||
* | Merge pull request #466 from mailwl/nv-timeout | bunnei | 2018-05-26 | 2 | -0/+16 |
|\ | | | | | Stub NVGPU_IOCTL_CHANNEL_SET_TIMEOUT | ||||
| * | Stub NVGPU_IOCTL_CHANNEL_SET_TIMEOUT | mailwl | 2018-05-24 | 2 | -0/+16 |
| | | | | | | | | Used in Nintendo Labo ToyCon 1&2 | ||||
* | | Stubbed NVGPU_GPU_IOCTL_ZBC_SET_TABLE (#463) | David | 2018-05-25 | 2 | -0/+22 |
|/ | | | We have no clue on what this actually does yet so stubbing it since it's just input only should be fine for now | ||||
* | change some functions | greggameplayer | 2018-05-23 | 1 | -6/+6 |
| | | | according to the changes made previously | ||||
* | correct placement and add size check | greggameplayer | 2018-05-23 | 1 | -21/+25 |
| | |||||
* | Add ioctl commands with their params and size check | greggameplayer | 2018-05-23 | 1 | -2/+86 |
| | |||||
* | Implemented NVHOST_IOCTL_CHANNEL_GET_WAITBASE (#440) | David | 2018-05-22 | 2 | -1/+20 |
| | | | | | | | | | | * Implemented NVHOST_IOCTL_CHANNEL_GET_WAITBASE struct + 4 seems to be hard coded at 0 and struct + 0 seems to be ignored? * IocGetWaitbase -> IocChannelGetWaitbaseCommand * Added super late fixes | ||||
* | GPU: Implemented the nvmap Free ioctl. | Subv | 2018-05-20 | 2 | -1/+48 |
| | | | | It releases a reference to an nvmap object | ||||
* | GPU: Implemented nvhost-as-gpu's UnmapBuffer ioctl. | Subv | 2018-05-20 | 2 | -0/+50 |
| | | | | It removes a mapping previously created with the MapBufferEx ioctl. | ||||
* | More accurate GetTPCMasks impl | David Marcec | 2018-05-11 | 2 | -4/+8 |
| | |||||
* | general: Make formatting of logged hex values more straightforward | Lioncash | 2018-05-02 | 6 | -8/+8 |
| | | | | | | This makes the formatting expectations more obvious (e.g. any zero padding specified is padding that's entirely dedicated to the value being printed, not any pretty-printing that also gets tacked on). | ||||
* | GPU: Don't write to invalid memory locations when handling ioctls that don't have an output. | Subv | 2018-05-01 | 2 | -5/+0 |
| | |||||
* | general: Convert assertion macros over to be fmt-compatible | Lioncash | 2018-04-27 | 1 | -2/+2 |
| | |||||
* | Merge branch 'master' of https://github.com/yuzu-emu/yuzu into service-impl | David Marcec | 2018-04-26 | 8 | -65/+123 |
|\ | |||||
| * | nvdrv: Move logging macros over to new fmt-compatible ones | Lioncash | 2018-04-24 | 7 | -60/+61 |
| | | |||||
| * | Merge pull request #384 from Subv/nvhost-remap | bunnei | 2018-04-23 | 2 | -0/+57 |
| |\ | | | | | | | Nvdrv/nvhost-as-gpu: Implemented the ioctl REMAP command. | ||||
| | * | NvDrv/nvhost-as-gpu: Ensure that the object passed to MapBufferEx has already been allocated. | Subv | 2018-04-23 | 1 | -0/+10 |
| | | | | | | | | | | | | Also added a consistency check and a comment for the case when the object id is different than its handle. The real nvservices doesn't make a distinction between ids and handles, each object gets an unique handle which doubles as its id. | ||||
| | * | Nvdrv/nvhost-as-gpu: Implemented the ioctl REMAP command. | Subv | 2018-04-23 | 2 | -0/+47 |
| | | | | | | | | | | | | It takes a previously-reserved (AllocateSpace) GPU memory address and maps it to the address of the nvmap object passed to Remap. | ||||
| * | | Nvdrv: Assert when receiving an unimplemented ioctl in the nv* handlers. | Subv | 2018-04-23 | 5 | -5/+5 |
| |/ | |||||
* | | GetIUserInterface->CreateUserInterface, Added todos and stub logs. Playreport->PlayReport. | David Marcec | 2018-04-23 | 1 | -1/+1 |
| | | |||||
* | | Implemented GetIUserInterface properly, Playreport and SSL::SetInterfaceVersion. Fixed ipc issues with IAudioDevice(wrong ids) | David Marcec | 2018-04-22 | 1 | -0/+1 |
|/ | |||||
* | service: Use nested namespace specifiers where applicable | Lioncash | 2018-04-20 | 19 | -102/+39 |
| | | | | Tidies up namespace declarations | ||||
* | Various fixes and clang | Hexagon12 | 2018-04-11 | 1 | -2/+2 |
| | |||||
* | Updated nvmemp with new service names. | Hexagon12 | 2018-04-10 | 1 | -4/+4 |
| | |||||
* | Updated nvdrv with more service names. | Hexagon12 | 2018-04-10 | 1 | -0/+7 |
| | |||||
* | renderer_opengl: Fixes for properly flushing & rendering the framebuffer. | bunnei | 2018-03-23 | 1 | -6/+0 |
| | |||||
* | renderer_opengl: Better handling of framebuffer transform flags. | bunnei | 2018-03-23 | 1 | -3/+1 |
| | |||||
* | nvdisp_disp0: Always flush and invalidate framebuffer region. | bunnei | 2018-03-23 | 1 | -0/+7 |
| | | | | - Workaround for texture forwarding until we have a better place. | ||||
* | video_core: Move FramebufferInfo to FramebufferConfig in GPU. | bunnei | 2018-03-23 | 1 | -3/+3 |
| | |||||
* | Clang Fixes | N00byKing | 2018-03-19 | 1 | -2/+2 |
| | |||||
* | Clean Warnings (?) | N00byKing | 2018-03-19 | 1 | -1/+1 |
| | |||||
* | nvmap: Make IocFromId return the same existing handle instead of creating a new one. | Subv | 2018-02-17 | 1 | -5/+2 |
| | | | | Games like Puyo Puyo Tetris and BOTW seem to depend on the buffer always having the same handle | ||||
* | nvhost-ctrl: Stub NVHOST_IOCTL_CTRL_EVENT_WAIT. | Subv | 2018-02-15 | 2 | -0/+25 |
| | |||||
* | Vi: Properly write the BufferProducerFence object in the DequeueBuffer response parcel. | Subv | 2018-02-15 | 1 | -0/+7 |
| | |||||
* | Merge pull request #188 from bunnei/refactor-buffer-descriptor | bunnei | 2018-02-15 | 1 | -20/+7 |
|\ | | | | | Refactor IPC buffer descriptor interface | ||||
| * | service: Remove remaining uses of BufferDescriptor*. | bunnei | 2018-02-14 | 1 | -3/+2 |
| | | |||||
| * | nvdrv: Use ReadBuffer/WriteBuffer functions for Ioctl. | bunnei | 2018-02-14 | 1 | -17/+5 |
| | | |||||
* | | nvdrv/interface: Silence formatting specifier warnings | Lioncash | 2018-02-14 | 1 | -1/+2 |
| | | |||||
* | | nvmap: Silence formatting specifier warnings | Lioncash | 2018-02-14 | 1 | -1/+2 |
| | | |||||
* | | nvhost_gpu: Silence formatting specifier warnings | Lioncash | 2018-02-14 | 1 | -6/+8 |
| | | |||||
* | | nvhost_ctrl: Silence formatting specifier warnings | Lioncash | 2018-02-14 | 1 | -2/+2 |
| | | |||||
* | | nvhost_ctrl_gpu: Silence formatting specifier warnings | Lioncash | 2018-02-14 | 1 | -3/+4 |
| | | |||||
* | | nvhost_as_gpu: Silence formatting specifier warnings | Lioncash | 2018-02-14 | 1 | -5/+7 |
|/ | |||||
* | Merge pull request #178 from Subv/command_buffers | bunnei | 2018-02-12 | 7 | -172/+18 |
|\ | | | | | GPU: Added a command processor to decode the GPU pushbuffers and forward the commands to their respective engines | ||||
| * | Make a GPU class in VideoCore to contain the GPU state. | Subv | 2018-02-12 | 7 | -181/+15 |
| | | | | | | | | Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there. | ||||
| * | GPU: Added a command processor to decode the GPU pushbuffers and forward the commands to their respective engines. | Subv | 2018-02-12 | 3 | -3/+5 |
| | | |||||
| * | nvdrv: Make the GPU memory manager available to nvhost-gpu. | Subv | 2018-02-12 | 3 | -6/+16 |
| | | |||||
* | | vi: Parse IGBPQueueBufferRequestParcel params and expose buffer flip vertical. | bunnei | 2018-02-12 | 2 | -3/+7 |
|/ | |||||
* | nvdrv: Fix QueryEvent for libnx. | bunnei | 2018-02-09 | 2 | -4/+8 |
| | |||||
* | nvhost_ctrl_gpu: Implement ZCullGetInfo. | bunnei | 2018-02-09 | 1 | -2/+14 |
| | |||||
* | nvhost_as_gpu: Implement AllocateSpace and MapBufferEx. | bunnei | 2018-02-08 | 2 | -10/+33 |
| | |||||
* | nvdrv: Add MemoryManager class to track GPU memory. | bunnei | 2018-02-08 | 2 | -0/+160 |
| | |||||
* | nvmap: Refactor to expose nvmap objects. | bunnei | 2018-02-08 | 2 | -19/+22 |
| | |||||
* | nvhost_as_gpu: Add nvmap as a class member. | bunnei | 2018-02-08 | 3 | -2/+9 |
| | |||||
* | Extra nvdrv support (#162) | David | 2018-02-06 | 16 | -37/+761 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * FinishInitalize needed for 3.0.1+ games * nvdrv:s and nvdrv:t both use NVDRV * Most settings return 0 on hardware, disabled NV_MEMORY_PROFILER for now. NVN_THROUGH_OPENGL & NVRM_GPU_PREVENT_USE are a few interesting settings to look at. Carefully choosing settings can help with drawing graphics later on * Initial /dev/nvhost-gpu support * ZCullBind * Stubbed SetErrorNotifier * Fixed SetErrorNotifier log, Added SetChannelPriority * Allocate GPFIFO Ex2, Allocate Obj Ctx, Submit GPFIFO * oops * Fixed up naming/structs/enums. Used vector instead of array for "gpfifo_entry" * Added missing fixes * /dev/nvhost-ctrl-gpu * unneeded struct * Forgot u32 in enum class * Automatic descriptor swapping for ioctls, fixed nvgpu_gpu_get_tpc_masks_args being incorrect size * nvdrv#QueryEvent * Renamed logs for nvdrv * Refactor ioctl so nv_result isn't needed * /dev/nvhost-as-gpu * Fixed Log service naming, CtxObjects now u32, renamed all structs, added static_asserts to structs, used INSERT_PADDING_WORDS instead of u32s * nvdevices now uses "Ioctl" union, * IoctlGpfifoEntry now uses bit field * final changes | ||||
* | logger: Use Service_NVDRV category where applicable. | bunnei | 2018-02-04 | 2 | -10/+10 |
| | |||||
* | hle: Rename RequestBuilder to ResponseBuilder. | bunnei | 2018-01-25 | 1 | -5/+5 |
| | |||||
* | Merge pull request #131 from lioncash/enum | bunnei | 2018-01-22 | 2 | -12/+13 |
|\ | | | | | nvmap: Make IoctlCommands an enum class | ||||
| * | nvmap: Add a return 0 underneath the UNIMPLEMENTED macro | Lioncash | 2018-01-21 | 1 | -0/+1 |
| | | | | | | | | This macro resolves to an empty macro in release builds. | ||||
| * | nvmap: Make IoctlCommands an enum class | Lioncash | 2018-01-21 | 2 | -12/+12 |
| | | | | | | | | Prevents the enum values from polluting the surrounding scope | ||||
* | | Added nvmemp, Added /dev/nvhost-ctrl, SetClientPID now stores pid (#114) | David | 2018-01-21 | 7 | -5/+158 |
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | * Added nvmemp, Added /dev/nvhost-ctrl, SetClientPID now stores pid * used clang-format-3.9 instead * lowercase pid * Moved nvmemp handlers to cpp * Removed unnecessary logging for NvOsGetConfigU32. Cleaned up log and changed to LOG_DEBUG * using std::arrays instead of c arrays * nvhost get config now uses std::array completely * added pid logging back * updated cmakelist * missing includes * added array, removed memcpy * clang-format6.0 | ||||
* | Format: Run the new clang format on everything | James Rowe | 2018-01-21 | 1 | -1/+1 |
| | |||||
* | nvdrv: Stub SetClientPID. | bunnei | 2018-01-19 | 2 | -0/+13 |
| | |||||
* | nvdrv: stubbed Close(cmd 2) | Frederic Meyer | 2018-01-17 | 4 | -0/+26 |
| | |||||
* | UI: Fix frame rate perf stats | James Rowe | 2018-01-17 | 1 | -0/+3 |
| | | | | Adds in a missing EndGameFrame when nvdrv swaps buffers | ||||
* | NV: Implemented the nvdrv service, which uses the same interface as nvdrv:a | Subv | 2018-01-17 | 3 | -14/+16 |
| | |||||
* | NV: Move the nvdrv classes into the Nvidia namespace, and move the functionality to a s single module that services call. | Subv | 2018-01-17 | 11 | -161/+91 |
| | |||||
* | clang-format | MerryMage | 2018-01-16 | 1 | -0/+1 |
| | |||||
* | yuzu: Update license text to be consistent across project. | bunnei | 2018-01-13 | 11 | -11/+11 |
| | |||||
* | core: Include <algorithm> where used. | bunnei | 2018-01-12 | 1 | -0/+2 |
| | |||||
* | nv: Fix more broken asserts. | bunnei | 2018-01-12 | 2 | -3/+3 |
| | |||||
* | nvdisp_disp0: Fix broken assert. | bunnei | 2018-01-12 | 1 | -1/+1 |
| | |||||
* | nvdisp_disp0: Call SwapBuffers to render framebuffer. | bunnei | 2018-01-11 | 1 | -0/+7 |
| | |||||
* | NV: Move the nv device nodes to their own directory and namespace. | Subv | 2018-01-11 | 9 | -165/+421 |
| | |||||
* | NV: Expose the nvdisp_disp0 device and a weak reference to the nvdrv:a service. | Subv | 2018-01-11 | 4 | -170/+236 |
| | | | | | | NVFlinger will call into the nvdisp_disp0 device to perform screen flips, bypassing the ioctl interface. We now have the address of the framebuffer to draw, we just need to actually put it on the screen. | ||||
* | NV: Implemented the nvdrv:a service and the /dev/nvmap device. | Subv | 2018-01-11 | 4 | -0/+354 |