nxdk_pgraph_tests
A collection of tests for the Xbox nv2a graphics processor
 
Loading...
Searching...
No Matches
image_blit_tests.h
1#ifndef NXDK_PGRAPH_TESTS_IMAGE_BLIT_TESTS_H
2#define NXDK_PGRAPH_TESTS_IMAGE_BLIT_TESTS_H
3
4#include <pbkit/pbkit.h>
5
6#include "test_suite.h"
7
8class TestHost;
9
15class ImageBlitTests : public TestSuite {
16 public:
17 struct BlitTest {
18 uint32_t blit_operation;
19 uint32_t buffer_color_format;
20 uint32_t beta;
21 };
22
23 public:
24 ImageBlitTests(TestHost& host, std::string output_dir, const Config& config);
25
26 void Initialize() override;
27 void Deinitialize() override;
28
29 private:
30 void Test(const BlitTest& test);
31 void TestWithClipRectangle(const BlitTest& test, uint32_t clip_x, uint32_t clip_y, int32_t clip_w, int32_t clip_h);
32 void TestBlitOverPushbuffer(const std::string& name, const BlitTest& test);
33 void TestBlitPastWidth(const std::string& name);
34 enum class OverlapCorner { TopLeft, TopRight, BottomLeft, BottomRight };
35 void TestOverlapBarelyInclusive(const std::string& name, OverlapCorner corner, bool overlap);
36
37 void ImageBlit(uint32_t operation, uint32_t beta, uint32_t source_channel, uint32_t destination_channel,
38 uint32_t surface_format, uint32_t source_pitch, uint32_t destination_pitch, uint32_t source_offset,
39 uint32_t source_x, uint32_t source_y, uint32_t destination_offset, uint32_t destination_x,
40 uint32_t destination_y, uint32_t width, uint32_t height, uint32_t clip_x = 0, uint32_t clip_y = 0,
41 int32_t clip_width = -1, int32_t clip_height = -1) const;
42
43 void ImageBlitWithinPushBlock(uint32_t operation, uint32_t beta, uint32_t source_channel,
44 uint32_t destination_channel, uint32_t surface_format, uint32_t source_pitch,
45 uint32_t destination_pitch, uint32_t source_offset, uint32_t source_x,
46 uint32_t source_y, uint32_t destination_offset, uint32_t destination_x,
47 uint32_t destination_y, uint32_t width, uint32_t height, uint32_t clip_x,
48 uint32_t clip_y, int32_t clip_width, int32_t clip_height) const;
49
50 void TestDirtyOverlappedDestinationSurface();
51
54 void TestBlitRenderBlit();
55
56 uint32_t image_pitch_{0};
57 uint32_t image_width_{0};
58 uint32_t image_height_{0};
59 uint8_t* source_image_{nullptr};
60
61 struct s_CtxDma null_ctx_{};
62 struct s_CtxDma image_src_dma_ctx_{};
63 struct s_CtxDma clip_rect_ctx_{};
64 struct s_CtxDma beta_ctx_{};
65 struct s_CtxDma beta4_ctx_{};
66 struct s_CtxDma render_target_dma_ctx_{};
67};
68
69#endif // NXDK_PGRAPH_TESTS_IMAGE_BLIT_TESTS_H
Definition image_blit_tests.h:15
void Initialize() override
Called to initialize the test suite.
Definition image_blit_tests.cpp:244
void Deinitialize() override
Called to tear down the test suite.
Definition image_blit_tests.cpp:290
Definition test_host.h:33
Definition test_suite.h:21
Definition image_blit_tests.h:17
Runtime configuration for TestSuites.
Definition test_suite.h:24