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