Shader_IR: Allow constant access of guest driver.
This commit is contained in:
		 Fernando Sahmkow
					Fernando Sahmkow
				
			
				
					committed by
					
						 FernandoS27
						FernandoS27
					
				
			
			
				
	
			
			
			 FernandoS27
						FernandoS27
					
				
			
						parent
						
							dc5cfa8d28
						
					
				
				
					commit
					b97608ca64
				
			| @@ -109,6 +109,7 @@ public: | |||||||
|     virtual u32 GetBoundBuffer() const = 0; |     virtual u32 GetBoundBuffer() const = 0; | ||||||
|  |  | ||||||
|     virtual VideoCore::GuestDriverProfile& AccessGuestDriverProfile() = 0; |     virtual VideoCore::GuestDriverProfile& AccessGuestDriverProfile() = 0; | ||||||
|  |     virtual const VideoCore::GuestDriverProfile& AccessGuestDriverProfile() const = 0; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| } // namespace Tegra::Engines | } // namespace Tegra::Engines | ||||||
|   | |||||||
| @@ -98,6 +98,10 @@ VideoCore::GuestDriverProfile& KeplerCompute::AccessGuestDriverProfile() { | |||||||
|     return rasterizer.AccessGuestDriverProfile(); |     return rasterizer.AccessGuestDriverProfile(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | const VideoCore::GuestDriverProfile& KeplerCompute::AccessGuestDriverProfile() const { | ||||||
|  |     return rasterizer.AccessGuestDriverProfile(); | ||||||
|  | } | ||||||
|  |  | ||||||
| void KeplerCompute::ProcessLaunch() { | void KeplerCompute::ProcessLaunch() { | ||||||
|     const GPUVAddr launch_desc_loc = regs.launch_desc_loc.Address(); |     const GPUVAddr launch_desc_loc = regs.launch_desc_loc.Address(); | ||||||
|     memory_manager.ReadBlockUnsafe(launch_desc_loc, &launch_description, |     memory_manager.ReadBlockUnsafe(launch_desc_loc, &launch_description, | ||||||
|   | |||||||
| @@ -220,6 +220,8 @@ public: | |||||||
|  |  | ||||||
|     VideoCore::GuestDriverProfile& AccessGuestDriverProfile() override; |     VideoCore::GuestDriverProfile& AccessGuestDriverProfile() override; | ||||||
|  |  | ||||||
|  |     const VideoCore::GuestDriverProfile& AccessGuestDriverProfile() const override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     Core::System& system; |     Core::System& system; | ||||||
|     VideoCore::RasterizerInterface& rasterizer; |     VideoCore::RasterizerInterface& rasterizer; | ||||||
|   | |||||||
| @@ -788,4 +788,8 @@ VideoCore::GuestDriverProfile& Maxwell3D::AccessGuestDriverProfile() { | |||||||
|     return rasterizer.AccessGuestDriverProfile(); |     return rasterizer.AccessGuestDriverProfile(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | const VideoCore::GuestDriverProfile& Maxwell3D::AccessGuestDriverProfile() const { | ||||||
|  |     return rasterizer.AccessGuestDriverProfile(); | ||||||
|  | } | ||||||
|  |  | ||||||
| } // namespace Tegra::Engines | } // namespace Tegra::Engines | ||||||
|   | |||||||
| @@ -1308,6 +1308,8 @@ public: | |||||||
|  |  | ||||||
|     VideoCore::GuestDriverProfile& AccessGuestDriverProfile() override; |     VideoCore::GuestDriverProfile& AccessGuestDriverProfile() override; | ||||||
|  |  | ||||||
|  |     const VideoCore::GuestDriverProfile& AccessGuestDriverProfile() const override; | ||||||
|  |  | ||||||
|     /// Memory for macro code - it's undetermined how big this is, however 1MB is much larger than |     /// Memory for macro code - it's undetermined how big this is, however 1MB is much larger than | ||||||
|     /// we've seen used. |     /// we've seen used. | ||||||
|     using MacroMemory = std::array<u32, 0x40000>; |     using MacroMemory = std::array<u32, 0x40000>; | ||||||
|   | |||||||
| @@ -84,6 +84,10 @@ public: | |||||||
|         return guest_driver_profile; |         return guest_driver_profile; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     const GuestDriverProfile& AccessGuestDriverProfile() const { | ||||||
|  |         return guest_driver_profile; | ||||||
|  |     } | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     GuestDriverProfile guest_driver_profile{}; |     GuestDriverProfile guest_driver_profile{}; | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -81,7 +81,7 @@ public: | |||||||
|         return bound_buffer; |         return bound_buffer; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     VideoCore::GuestDriverProfile* AccessGuestDriverProfile() { |     VideoCore::GuestDriverProfile* AccessGuestDriverProfile() const { | ||||||
|         if (engine) { |         if (engine) { | ||||||
|             return &(engine->AccessGuestDriverProfile()); |             return &(engine->AccessGuestDriverProfile()); | ||||||
|         } |         } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user