Go to the documentation of this file.
38 #ifndef __DEV_PIXELPUMP_HH__
39 #define __DEV_PIXELPUMP_HH__
49 struct BasePixelPumpParams;
66 unsigned hbp,
unsigned h_sync,
unsigned hfp,
67 unsigned vbp,
unsigned v_sync,
unsigned vfp);
169 unsigned pixel_chunk);
316 const std::string
name()
const override {
return _name; }
370 #endif // __DEV_PIXELPUMP_HH__
void stop()
Immediately stop pushing pixels.
virtual void onVSyncEnd()
Callback on the first pixel of the line after the end VSync region (typically the first pixel of the ...
BasePixelPump(EventManager &em, ClockDomain &pxl_clk, unsigned pixel_chunk)
unsigned vSync
Vertical sync signal in lines.
Cycles cyclesPerLine() const
How many pixel clocks are required for one line?
const std::string name() const override
bool _underrun
Did a buffer underrun occur within this refresh interval?
Internal gem5 representation of a frame buffer.
bool underrun() const
Did a buffer underrun occur within this refresh interval?
std::vector< PixelEvent * > pixelEvents
Convenience vector when doing operations on all events.
unsigned lineVSyncStart() const
Calculate the first line of the vsync signal.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
void renderLine()
Fast and event-free line rendering function.
void start()
Starting pushing pixels in timing mode.
void renderFrame()
Render an entire frame in non-caching mode.
unsigned vFrontPorch
Vertical front porch in lines.
virtual void onFrameDone()
Finished displaying the visible region of a frame.
static const DisplayTimings vga
unsigned height
Display height in pixels.
unsigned hBackPorch
Horizontal back porch in pixels.
void drainResume() override
Resume execution after a successful drain.
Helper class for objects that need to be clocked.
Callback helper class with suspend support.
Cycles is a wrapper class for representing cycle counts, i.e.
virtual void onVSyncBegin()
First pixel clock of the first VSync line.
virtual size_t nextLine(std::vector< Pixel >::iterator ps, size_t line_length)
Get the next line of pixels directly from memory.
void serialize(CheckpointOut &cp) const override
Serialize an object.
Basic support for object serialization.
DrainState
Object drain/handover states.
unsigned linesPerFrame() const
Calculate the total number of lines in a frame.
The ClockDomain provides clock to group of clocked objects bundled under the same clock domain.
DisplayTimings(unsigned width, unsigned height, unsigned hbp, unsigned h_sync, unsigned hfp, unsigned vbp, unsigned v_sync, unsigned vfp)
Create a display timing configuration struct.
const unsigned pixelChunk
Maximum number of pixels to handle per render callback.
void serialize(CheckpointOut &cp) const override
Serialize an object.
uint64_t Tick
Tick count type.
PixelEvent(const char *name, BasePixelPump *parent, CallbackType func)
unsigned hSync
Horizontal sync signal length in pixels.
void updateTimings(const DisplayTimings &timings)
Update frame size using display timing.
const DisplayTimings & timings() const
Get a constant reference of the current display timings.
unsigned lineFrontPorchStart() const
Calculate the first line of the back porch.
Cycles cyclesPerFrame() const
How many pixel clocks are required for one frame?
virtual void onHSyncBegin()
Start of the HSync region.
unsigned hFrontPorch
Horizontal front porch in pixels.
void(BasePixelPump::* CallbackType)()
bool visibleLine() const
Is the current line within the visible range?
void unserialize(CheckpointIn &cp) override
Unserialize an object.
bool active() const
Is the pixel pump active and refreshing the display?
Internal gem5 representation of a Pixel.
unsigned width
Display width in pixels.
virtual bool nextPixel(Pixel &p)=0
Get the next pixel from the scan line buffer.
unsigned vBackPorch
Vertical back porch in lines.
virtual void onHSyncEnd()
Start of the first pixel after the HSync region.
unsigned line
Current line (including back porch, front porch, and vsync) within a frame.
DrainState drain() override
Draining is the process of clearing out the states of SimObjects.These are the SimObjects that are pa...
void unserialize(CheckpointIn &cp) override
Unserialize an object.
void serialize(CheckpointOut &cp) const override
Serialize an object.
unsigned _posX
X-coordinate within the visible region of a frame.
Interface for objects that might require draining before checkpointing.
PixelEvent evRenderPixels
unsigned posY() const
Current pixel position within the visible area.
unsigned lineVBackPorchStart() const
Calculate the first line of the vertical back porch.
std::ostream CheckpointOut
virtual void onUnderrun(unsigned x, unsigned y)
Buffer underrun occurred on a frame.
unsigned posX() const
Current pixel position within the visible area.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Timing generator for a pixel-based display.
bool scheduled() const
Determine if the current event is scheduled.
unsigned lineFirstVisible() const
Calculate the first line of the visible region.
FrameBuffer fb
Output frame buffer.
Generated on Tue Sep 21 2021 12:25:17 for gem5 by doxygen 1.8.17