mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Further refine GPU command list debugging.
This commit is contained in:
		
							parent
							
								
									b0051b2203
								
							
						
					
					
						commit
						f82410e633
					
				
					 3 changed files with 27 additions and 4 deletions
				
			
		|  | @ -53,7 +53,7 @@ int GPUCommandListModel::rowCount(const QModelIndex& parent) const | |||
| 
 | ||||
| int GPUCommandListModel::columnCount(const QModelIndex& parent) const | ||||
| { | ||||
|     return 1; | ||||
|     return 2; | ||||
| } | ||||
| 
 | ||||
| QVariant GPUCommandListModel::data(const QModelIndex& index, int role) const | ||||
|  | @ -68,7 +68,7 @@ QVariant GPUCommandListModel::data(const QModelIndex& index, int role) const | |||
|         const GraphicsDebugger::PicaCommandList& cmdlist = command_lists[item->index].second; | ||||
|         u32 address = command_lists[item->index].first; | ||||
| 
 | ||||
|         if (role == Qt::DisplayRole) | ||||
|         if (role == Qt::DisplayRole && index.column() == 0) | ||||
|         { | ||||
|             return QVariant(QString("0x%1 bytes at 0x%2").arg(cmdlist.size(), 0, 16).arg(address, 8, 16, QLatin1Char('0'))); | ||||
|         } | ||||
|  | @ -78,11 +78,17 @@ QVariant GPUCommandListModel::data(const QModelIndex& index, int role) const | |||
|         // index refers to a specific command
 | ||||
|         const GraphicsDebugger::PicaCommandList& cmdlist = command_lists[item->parent->index].second; | ||||
|         const GraphicsDebugger::PicaCommand& cmd = cmdlist[item->index]; | ||||
|         const Pica::CommandHeader& header = cmd.GetHeader(); | ||||
| 
 | ||||
|         if (role == Qt::DisplayRole) { | ||||
|             QString content; | ||||
|             for (int j = 0; j < cmd.size(); ++j) | ||||
|                 content.append(QString("%1 ").arg(cmd[j], 8, 16, QLatin1Char('0'))); | ||||
|             if (index.column() == 0) { | ||||
|                 content = Pica::command_names[header.cmd_id]; | ||||
|                 content.append(" "); | ||||
|             } else if (index.column() == 1) { | ||||
|                 for (int j = 0; j < cmd.size(); ++j) | ||||
|                     content.append(QString("%1 ").arg(cmd[j], 8, 16, QLatin1Char('0'))); | ||||
|             } | ||||
| 
 | ||||
|             return QVariant(content); | ||||
|         } | ||||
|  |  | |||
|  | @ -100,6 +100,7 @@ public: | |||
|             auto& cmd = cmdlist.back(); | ||||
| 
 | ||||
|             size_t size = 2 + header.extra_data_length; | ||||
|             size = (size + 1) / 2 * 2; // align to 8 bytes
 | ||||
|             cmd.reserve(size); | ||||
|             std::copy(parse_pointer, parse_pointer + size, std::back_inserter(cmd)); | ||||
| 
 | ||||
|  |  | |||
|  | @ -4,6 +4,9 @@ | |||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <initializer_list> | ||||
| #include <map> | ||||
| 
 | ||||
| #include "common/bit_field.h" | ||||
| #include "common/common_types.h" | ||||
| 
 | ||||
|  | @ -34,4 +37,17 @@ union CommandHeader { | |||
|     BitField<31,  1, u32> group_commands; | ||||
| }; | ||||
| 
 | ||||
| static std::map<CommandId, const char*> command_names = { | ||||
|     {CommandId::ViewportSizeX, "ViewportSizeX" }, | ||||
|     {CommandId::ViewportInvSizeX, "ViewportInvSizeX" }, | ||||
|     {CommandId::ViewportSizeY, "ViewportSizeY" }, | ||||
|     {CommandId::ViewportInvSizeY, "ViewportInvSizeY" }, | ||||
|     {CommandId::ViewportCorner, "ViewportCorner" }, | ||||
|     {CommandId::DepthBufferFormat, "DepthBufferFormat" }, | ||||
|     {CommandId::ColorBufferFormat, "ColorBufferFormat" }, | ||||
|     {CommandId::DepthBufferAddress, "DepthBufferAddress" }, | ||||
|     {CommandId::ColorBufferAddress, "ColorBufferAddress" }, | ||||
|     {CommandId::ColorBufferSize, "ColorBufferSize" }, | ||||
| }; | ||||
| 
 | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue