Home | History | Annotate | Download | only in vmwgfx

Lines Matching refs:dirty

1022  * @dirty: The closure structure.
1027 static void vmw_sou_surface_fifo_commit(struct vmw_kms_dirty *dirty)
1030 container_of(dirty, typeof(*sdirty), base);
1031 struct vmw_kms_sou_dirty_cmd *cmd = dirty->cmd;
1032 s32 trans_x = dirty->unit->crtc.x - sdirty->dst_x;
1033 s32 trans_y = dirty->unit->crtc.y - sdirty->dst_y;
1034 size_t region_size = dirty->num_hits * sizeof(SVGASignedRect);
1038 if (!dirty->num_hits) {
1039 vmw_fifo_commit(dirty->dev_priv, 0);
1061 cmd->body.destScreenId = dirty->unit->unit;
1064 for (i = 0; i < dirty->num_hits; ++i, ++blit) {
1071 vmw_fifo_commit(dirty->dev_priv, region_size + sizeof(*cmd));
1080 * @dirty: The closure structure
1085 static void vmw_sou_surface_clip(struct vmw_kms_dirty *dirty)
1088 container_of(dirty, typeof(*sdirty), base);
1089 struct vmw_kms_sou_dirty_cmd *cmd = dirty->cmd;
1093 blit += dirty->num_hits;
1094 blit->left = dirty->unit_x1;
1095 blit->top = dirty->unit_y1;
1096 blit->right = dirty->unit_x2;
1097 blit->bottom = dirty->unit_y2;
1100 sdirty->left = min_t(s32, sdirty->left, dirty->unit_x1);
1101 sdirty->top = min_t(s32, sdirty->top, dirty->unit_y1);
1102 sdirty->right = max_t(s32, sdirty->right, dirty->unit_x2);
1103 sdirty->bottom = max_t(s32, sdirty->bottom, dirty->unit_y2);
1105 dirty->num_hits++;
1109 * vmw_kms_sou_do_surface_dirty - Dirty part of a surface backed framebuffer
1125 * @crtc: If crtc is passed, perform surface dirty on that crtc only.
1188 * @dirty: The closure structure.
1192 static void vmw_sou_bo_fifo_commit(struct vmw_kms_dirty *dirty)
1194 if (!dirty->num_hits) {
1195 vmw_fifo_commit(dirty->dev_priv, 0);
1199 vmw_fifo_commit(dirty->dev_priv,
1201 dirty->num_hits);
1207 * @dirty: The closure structure
1211 static void vmw_sou_bo_clip(struct vmw_kms_dirty *dirty)
1213 struct vmw_kms_sou_bo_blit *blit = dirty->cmd;
1215 blit += dirty->num_hits;
1217 blit->body.destScreenId = dirty->unit->unit;
1218 blit->body.srcOrigin.x = dirty->fb_x;
1219 blit->body.srcOrigin.y = dirty->fb_y;
1220 blit->body.destRect.left = dirty->unit_x1;
1221 blit->body.destRect.top = dirty->unit_y1;
1222 blit->body.destRect.right = dirty->unit_x2;
1223 blit->body.destRect.bottom = dirty->unit_y2;
1224 dirty->num_hits++;
1228 * vmw_kms_do_bo_dirty - Dirty part of a buffer-object backed framebuffer
1241 * @crtc: If crtc is passed, perform bo dirty on that crtc only.
1258 struct vmw_kms_dirty dirty;
1274 dirty.crtc = crtc;
1275 dirty.fifo_commit = vmw_sou_bo_fifo_commit;
1276 dirty.clip = vmw_sou_bo_clip;
1277 dirty.fifo_reserve_size = sizeof(struct vmw_kms_sou_bo_blit) *
1280 0, 0, num_clips, increment, &dirty);
1298 * @dirty: The closure structure.
1302 static void vmw_sou_readback_fifo_commit(struct vmw_kms_dirty *dirty)
1304 if (!dirty->num_hits) {
1305 vmw_fifo_commit(dirty->dev_priv, 0);
1309 vmw_fifo_commit(dirty->dev_priv,
1311 dirty->num_hits);
1317 * @dirty: The closure structure
1321 static void vmw_sou_readback_clip(struct vmw_kms_dirty *dirty)
1323 struct vmw_kms_sou_readback_blit *blit = dirty->cmd;
1325 blit += dirty->num_hits;
1327 blit->body.srcScreenId = dirty->unit->unit;
1328 blit->body.destOrigin.x = dirty->fb_x;
1329 blit->body.destOrigin.y = dirty->fb_y;
1330 blit->body.srcRect.left = dirty->unit_x1;
1331 blit->body.srcRect.top = dirty->unit_y1;
1332 blit->body.srcRect.right = dirty->unit_x2;
1333 blit->body.srcRect.bottom = dirty->unit_y2;
1334 dirty->num_hits++;
1364 struct vmw_kms_dirty dirty;
1380 dirty.crtc = crtc;
1381 dirty.fifo_commit = vmw_sou_readback_fifo_commit;
1382 dirty.clip = vmw_sou_readback_clip;
1383 dirty.fifo_reserve_size = sizeof(struct vmw_kms_sou_readback_blit) *
1386 0, 0, num_clips, 1, &dirty);