nxdk_pgraph_tests
A collection of tests for the Xbox nv2a graphics processor
 
Loading...
Searching...
No Matches
AntialiasingTests Class Reference

#include <antialiasing_tests.h>

Inheritance diagram for AntialiasingTests:
Collaboration diagram for AntialiasingTests:

Classes

struct  Instruction
 

Public Member Functions

 AntialiasingTests (TestHost &host, std::string output_dir, const Config &config)
 
void Initialize () override
 Called to initialize the test suite.
 
- Public Member Functions inherited from TestSuite
 TestSuite (TestHost &host, std::string output_dir, std::string suite_name, const Config &config)
 
const std::string & Name () const
 
virtual void Deinitialize ()
 Called to tear down the test suite.
 
virtual void SetupTest ()
 Called before running an individual test within this suite.
 
virtual void TearDownTest ()
 Called after running an individual test within this suite.
 
void DisableTests (const std::set< std::string > &tests_to_skip)
 
std::vector< std::string > TestNames () const
 
bool HasEnabledTests () const
 
void Run (const std::string &test_name)
 
void RunAll ()
 
void SetSavingAllowed (bool enable=true)
 

Additional Inherited Members

- Static Public Member Functions inherited from TestSuite
static void TagNV2ATrace (uint32_t num_nops)
 Inserts a pattern of NV097_NO_OPERATION's into the pushbuffer to allow identification when viewing nv2a traces.
 
- Protected Member Functions inherited from TestSuite
void SetDefaultTextureFormat () const
 
- Protected Attributes inherited from TestSuite
TestHosthost_
 
std::string output_dir_
 
std::string suite_name_
 
bool allow_saving_ {true}
 
std::map< std::string, std::function< void()> > tests_ {}
 
PGRAPHDiffToken pgraph_diff_
 
bool enable_progress_log_
 
bool enable_pgraph_region_diff_
 
uint32_t delay_milliseconds_between_tests_
 
std::shared_ptr< FTPLoggerftp_logger_
 

Detailed Description

Tests the effects of NV097_SET_SURFACE_FORMAT_ANTI_ALIASING in various scenarios.

Many of these tests were created to demonstrate specific bugs in xemu and are not of practical value in typical hardware use cases.

Constructor & Destructor Documentation

◆ AntialiasingTests()

AntialiasingTests::AntialiasingTests ( TestHost host,
std::string  output_dir,
const Config config 
)

Initializes the test suite and creates test cases.

Remarks
AAOnThenOffCPUWrite Configure the framebuffer surface with some antialiasing mode, clear, change the mode, modify the framebuffer by writing directly to VRAM, then render. Used to reproduce xemu-project/xemu#652.
CPUWriteIgnoresSurfaceConfig This test verifies that direct writes to VRAM bypass any surface configuration. It sets up a texture surface with antialiasing enabled, then writes directly to texture memory and renders the texture to the screen. It is expected that antialiasing has no effect.
CreateSurfaceWithCenter1 Tests rendering with NV097_SET_SURFACE_FORMAT_ANTI_ALIASING_CENTER_1
CreateSurfaceWithCenterCorner2 Tests rendering with NV097_SET_SURFACE_FORMAT_ANTI_ALIASING_CENTER_CORNER_2
CreateSurfaceWithSquareOffset4 Tests rendering with NV097_SET_SURFACE_FORMAT_ANTI_ALIASING_SQUARE_OFFSET_4
FBSurfaceWithCenter1
FBSurfaceWithCenterCorner2
FramebufferNotModifiedBySurfaceState
GPUAAWriteAfterCPUWrite
NonAACPURoundTrip
SurfaceStatesAreIndependent

Member Function Documentation

◆ Initialize()

void AntialiasingTests::Initialize ( )
overridevirtual

Called to initialize the test suite.

Reimplemented from TestSuite.


The documentation for this class was generated from the following files: